Pythonにおけるリスト

外出できない夏休みが暇かと言われれば案外そうでもなく、実は勉強や趣味でまあまあ忙しく過ごしています。時間管理が下手なだけとも言えますが…。

リストとは

今回はリストについて書きます。
リストとはその名の通り複数の値をまとめたものです。数値でも文字列でもリストを作成できます。例としてアルファベット“A”・“B”・“C”からなるリストalphaを考えます。リストの作り方は次のようになります。なお、コード中に出てくる">>>"のある行は入力部分、">>>"のない行は出力部分です。

>>> alpha = ["A","B","C"]  # 文字列は必ず""の中に入力する
>>> alpha                  # リストalphaを表示してみる
['A', 'B', 'C']  

Pythonではこのリストに新たに要素を追加したり、削除したり、更新したり、特定の要素の位置や個数を検索したり、要素を並び替えたりできます。

要素を追加する


(リスト名).append(x)
リストの末尾に要素xを一つ追加します。たとえばリストalphaの末尾に要素“B”を追加するときは以下のようになります。

>>> alpha.append("B")
>>> alpha
['A', 'B', 'C', 'B']

(リスト名).insert(i, x)
リストのi番目の位置に要素xを一つ追加します。ただしリストの先頭の要素は0番目として扱われるので注意が必要です。このように要素の位置を表す番号をインデックスと呼びます。リストalphaの3番目の位置に要素“D”を追加するときは以下のようになります。

>>> alpha.insert(3,"D")   # 3番目に要素”D”を追加
>>> alpha
['A', 'B', 'C', 'D', 'B']
>>> alpha[3]
'D'                      # たしかに3番目に追加されている

(リスト名).extend([x,y,z])
複数の要素x,y,zを一度にリストの末尾に追加します。文字列と数値が混在していても追加可能です。リストalphaの末尾に要素“X”・1・2・3を追加するときは以下のようになります。

>>> alpha.extend(["X",1,2,3]) # 数値は""で囲まなくても大丈夫
>>> alpha
['A', 'B', 'C', 'D', 'B', 'X', 1, 2, 3]

また、別のリストbetaを用意して、リストalphaの全要素と要素“Y”・“Z”を追加するときは以下のようにできます。

>>> beta = alpha + ["Y","Z"]
>>> beta
['A', 'B', 'C', 'D', 'B', 'X', 1, 2, 3, 'Y', 'Z']

要素を削除する


(リスト名).remove(x)
リスト中にある要素xのうち最初のxを削除します。リストalphaから要素“B”を削除するときは以下のようになります。

>>> alpha.remove("B")
>>> alpha
['A', 'C', 'D', 'B', 'X', 1, 2, 3] # 'A'と'C'の間にあった'B'のみ削除されている

(リスト名).pop(i)
リスト中のi番目の要素を削除し、その要素を返します。インデックスを書かないとリストの末尾の要素が削除されます。リストalphaから要素3を削除するときは以下のようになります。

>>> alpha.pop(7)          # 7番目の 3 を削除する
3
>>> alpha
['A', 'C', 'D', 'B', 'X', 1, 2]
                                # または
>>> alpha.pop()                 # 末尾の 3 を削除する
3
>>> alpha
['A', 'C', 'D', 'B', 'X', 1, 2]

(リスト名).clear()
リスト中の全ての要素を削除します。リストbetaの全要素を削除するときは以下のようになります。

>>> beta.clear()
>>> beta
[]          # すべての要素が削除されている

要素を更新する


リスト中にあるi番目の要素を別の要素に置き換えたいときは、
(リスト名)[i] = (新しい要素)のように書きます。リストalphaの要素“X”を要素”D”に置き換えるときは、以下のようになります。

>>> alpha
['A', 'C', 'D', 'B', 'X', 1, 2]
>>> alpha[4] = "D"
>>> alpha
['A', 'C', 'D', 'B', 'D', 1, 2]

要素を検索する


(リスト名).index(x,start, end)
リスト中の要素xのうち最初の要素xのインデックスを返します。リストalpha中の要素”D”のインデックスを検索すると以下のようになります。

>>> alpha
['A', 'C', 'D', 'B', 'D', 1, 2]
>>> alpha.index("D")
2              # 2つの'D'のうち最初のほうのインデックスが表示される

引数である start と end にインデックスを入力すると、リストの探索範囲をstartからendまでに指定できます。

>>> alpha.index("D",3,6) # 'B'から 2 の間で検索
4                        # 返り値はリスト全体のインデックス(startからではない)

(リスト名).count(x)
リスト中の要素xの出現回数を返します。リストalpha中の要素“D”の出現回数を検索すると以下のようになります。

>>> alpha
['A', 'C', 'D', 'B', 'D', 1, 2]
>>> alpha.count("D")
2

要素を並び替える

(リスト名).sort(key=None, reverse=False)
リストの要素をアルファベット順、あるいは昇順に並び替えます。リストalphaを並び替えると以下のようになります。

>>> alpha.sort(key=None,reverse=False)

Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'str'
# 文字列と数値を混合してソートすることはできない

>>> alpha
['A', 'B', 'C', 'D', 'D', 1, 2]

(リスト名).reverse()
リストの要素を逆順にします。リストalphaの要素を逆順にするときは以下のようになります。

>>> alpha.reverse()
>>> alpha
[2, 1, 'D', 'D', 'C', 'B', 'A']


今回はこんなところで。


MU生活向上の会(MUQoL)は私のような初心者をはじめとした、さまざまなレベルの人が集まってプログラミングに触れ、互いの知見や制作物を共有する会です。あなたも参加してみませんか?興味のある方や疑問のある方は生活向上の会(@muprgm)まで気軽にDMを送ってくださいね。

この記事が気に入ったらサポートをしてみませんか?