リストは他の言語でいう配列で、順番に並んだオブジェクトを入れるコンテナ。
リストは他の言語でいう配列で、順番に並んだオブジェクトを入れるコンテナ。次のように[]
(角括弧)を用いて変数に代入する。リストに含まれている個々のオブジェクトを要素という。
リスト = ['Python', 'HTML', 'Java']
リストに含まれている要素を参照するには、インデックス(要素の番号)を使ってリスト[インデックス]
のようにする。一番目のインデックスは0となる。
リスト = ['Python', 'HTML', 'Java']
print(リスト[1]) # HTML
要素を入れ替えるなら、
リスト[インデックス] = オブジェクト
要素追加ならappendメソッド。
リストをスライス(一部をリストとして参照)するには、[開始インデックス:終了インデックス]
で範囲を指定する。終了インデックスの直前の要素までが範囲となる。
リスト[i:j] # インデックスiからj-1まで
リスト[i:] # iから最後まで
リスト[:] # すべて
リスト[-i:] # 後ろから数えてi番目から最後まで(末尾要素は-1)
リスト = ['Python', 'HTML', 'Java']
print(リスト[1:2]) # ['HTML']
print(リスト[:]) # ['Python', 'HTML', 'Java']
print(リスト[-2:]) # ['HTML', 'Java']
リストの大きさ(要素の数)はlen
関数で調べる。
リスト = ['Python', 'HTML', 'Java']
print(len(リスト)) # 3
生成したリストはオブジェクトの一種。リストを操作するメソッド(オブジェクトが使える関数)はいくつかあり、次のように使う。
リスト.メソッド()
リストの末尾に要素を追加するなら、append
メソッド。
リスト = ['Python', 'HTML', 'Java']
リスト.append('Ruby')
print(リスト) # ['Python', 'HTML', 'Java', 'Ruby']
他のやり方として、リスト[リストサイズ:]
に代入したり、
リスト = ['Python', 'HTML', 'Java']
リスト[len(リスト):] = ['Ruby']
print(リスト) # ['Python', 'HTML', 'Java', 'Ruby']
+
でも追加できる。
リスト = ['Python', 'HTML', 'Java'] + ['Ruby']
print(リスト) # ['Python', 'HTML', 'Java', 'Ruby']
リストの末尾にリストを追加するなら、extend
メソッド。
リスト = ['Python', 'HTML', 'Java']
リスト.extend(['Ruby', 'JavaScript'])
print(リスト) # ['Python', 'HTML', 'Java', 'Ruby', 'JavaScript']
これがappendメソッドだと入れ子のリストになる。
リスト = ['Python', 'HTML', 'Java']
リスト.append(['Ruby', 'JavaScript'])
print(リスト) # ['Python', 'HTML', 'Java', ['Ruby', 'JavaScript']]
リストの指定位置に要素を挿入するなら、insert
メソッド。引数1に挿入先のインデックスを指定。
リスト = ['Python', 'HTML', 'Java']
リスト.insert(1, 'Ruby')
print(リスト) # ['Python', 'Ruby', 'HTML', 'Java']
リストから要素を指定して削除するなら、remove
メソッド。もし要素が存在しなかったらエラー。
リスト = ['Python', 'HTML', 'Java']
リスト.remove('HTML')
print(リスト) # ['Python', 'Java']
リストからインデックス指定で要素を削除するなら、del
文を使う。
リスト = ['Python', 'HTML', 'Java']
del リスト[0]
print(リスト) # ['HTML', 'Java']
ある要素がリストにいくつ含まれるかカウントするなら、count
メソッド。
リスト = ['Python', 'HTML', 'Java', 'HTML']
print(リスト.count('HTML')) # 2
リストの要素をソートするなら、sort
メソッド。数字(小さい)、大文字、小文字、ひらがな・漢字の順番。現在の並びを逆順にするなら、reverse
メソッド。
リスト = ['あ', 'ん', '漢字', '1', '10', '01', 'python', 'Python', 'java']
リスト.sort()
print(リスト) # ['01', '1', '10', 'Python', 'java', 'python', 'あ', 'ん', '漢字']
リスト.reverse()
print(リスト) # ['漢字', 'ん', 'あ', 'python', 'java', 'Python', '10', '1', '01']
リストの末尾(最後に追加した要素)から要素を取り出すなら、pop
メソッド。後入先出法。
リスト = ['Python', 'HTML', 'Java']
print(リスト.pop()) # Java
print(リスト) # ['Python', 'HTML']
リストの要素を順次処理していくにはfor
文を使う。下記の「要素」という変数には順番にリストの要素が代入される。
リスト = ['Python', 'HTML', 'Java']
for 要素 in リスト:
print(要素)
インデックス番号が必要なら、組み込み関数のenumerate
を使う。
リスト = ['Python', 'HTML', 'Java']
for インデックス, 要素 in enumerate(リスト):
print(インデックス, 要素)
出力はこうなる。
0 Python
1 HTML
2 Java