リスト¶
リストは、1つの変数で複数の要素を持つものです。また、自由に要素の出し入れができ、要素の並び順を保持するものです。
以下の特徴があります。
[要素, 要素, 要素]
のようにカンマ(,
)区切りで値や変数、 オブジェクトなどを指定可能。要素の格納順を保存している。
リスト名は変数の命名規則に従ってください。
リストの作成と要素の追加¶
空のリスト([]
)を作り、リスト.append(要素)
を利用し、末尾に要素を追加します。
sample_list = [] # 空のリスト
sample_list.append('佐藤') # 要素の追加
print(sample_list) # -> ['佐藤']
sample_list.append('鈴木') # 要素の追加
print(sample_list) # -> ['佐藤', '鈴木']
最初から要素を持ったリストも作成できます。[]
の中にカンマ(,
)区切りで要素を指定します。リスト.append(要素)
で更に要素を追加できます。
sample_list = ['佐藤', '鈴木']
print(sample_list) # -> ['佐藤', '鈴木']
sample_list.append('中村') # 要素の追加
print(sample_list) # -> ['佐藤', '鈴木', '中村']
すでにリストに存在している要素と同じ要素を追加できます。
sample_list = ['佐藤', '鈴木']
sample_list.append('佐藤') # 要素の追加
print(sample_list) # -> ['佐藤', '鈴木', '佐藤']
要素型が異なる要素を持つこともできます。
sample_list = [] # 空のリスト
sample_list.append('佐藤') # 要素の追加
print(sample_list) # -> ['佐藤']
sample_list.append(40) # 要素の追加
print(sample_list) # -> ['佐藤', 40]
リストの結合¶
リスト同士を「+」で演算すると、リストの結合ができます。
たとえば、[1, 2] + [3]
は、[1, 2, 3]
になります。
また、「リスト * 数字」では、リストを数字の回数だけ足すのと同じになります。
たとえば、[1, 2] * 2
は、[1, 2, 1, 2]
になります。
要素の参照¶
リストの要素はリスト[インデックス]
で参照できます。インデックスとはリストの中の位置情報です。0からはじまる数値で指定します。先頭の値のインデックスは0
です。慣れるまで注意してください。
sample_list = ['佐藤', '鈴木', '中村', '木田']
print(sample_list[1]) # -> 鈴木
マイナスを使うと後ろから参照できます。
sample_list = ['佐藤', '鈴木', '中村', '木田']
print(sample_list[-1]) # -> 木田
print(sample_list[-2]) # -> 中村
存在しないインデックスを参照するとIndexErrorが発生します。
for文を利用すると、リストの要素を前から順に処理できます。
sample_list = ['佐藤', '鈴木', '中村', '木田']
for name in sample_list:
print(name)
実行結果
:
佐藤
鈴木
中村
木田
スライス¶
文字列のスライスと同様にスライスでリストの一部を取り出せます。スライスの詳しい解説は、文字列のスライスを参照ください。
sample_list = ['佐藤', '鈴木', '中村', '木田']
print(sample_list[:2]) # -> ['佐藤', '鈴木']
print(sample_list[2:]) # -> ['中村', '木田']
print(sample_list[1:3]) # -> ['鈴木', '中村']
要素の指定位置への追加¶
リスト.insert(インデックス, 要素)
を利用すると指定したインデックスの場所に要素を追加できます。追加した場所以降の要素の位置はひとつずつ後ろにさがります。
sample_list = ['佐藤', '鈴木', '中村']
sample_list.insert(2, '東')
print(sample_list) # -> ['佐藤', '鈴木', '東', '中村']
末尾の削除¶
リスト.pop()
を利用すると、末尾の要素を削除し、削除した要素を返します。代入を利用しないことで、要素を削除だけするという使い方もできます。
sample_list = ['佐藤', '鈴木', '中村', '木田']
pop_data = sample_list.pop()
print(sample_list) # -> ['佐藤', '鈴木', '中村']
print(pop_data) # -> 木田
sample_list.pop()
print(sample_list) # -> ['佐藤', '鈴木']
指定位置の要素の削除¶
リスト.pop(インデックス)
を利用すると、指定位置の要素を削除できます。
sample_list = ['佐藤', '鈴木', '東', '中村', '木田']
pop_data = sample_list.pop(1)
print(sample_list) # -> ['佐藤', '東', '中村', '木田']
print(pop_data) # -> 鈴木
さらに詳しく学ぶには、公式ドキュメントの5. 要素構造を参照ください。
ミュータブル¶
リストのように「値が変更できること」をミュータブルといいます。 逆に、「値が変更できないこと」をイミュータブルといいます。
参考:イミュータブル