Pythonの4つの重要な型の1つであるList (リスト) について、詳しく見ていきます。住所録のリスト、買い物リストなど日常生活でも頻繁にリストを使っていますよね。しっかり理解していきましょう。



リストの作り方

リスト作成: []

リストを作成する際は [] でアイテムを囲みます。空のリストを作成する際には list() を使うこともできます。

list1 = []
list2 = list()
list3 = [1, 2, 3]
list4 = ['Mon', 'Tue', 'Wed']
list5 = ['a', 'b', 1, 2]
list6 = ['c', 'd', list4]

list1とlist2はともに空のリストを作成しています。

list3は数字のリスト、list4は文字列のリスト、list5は文字列と数字が混在したリストです。文字列の場合は、’ ‘ か ” ” で各アイテムを囲まないといけませんでしたね(Python | 変数と型)

list6はリスト内にlist4を含んだリストになります。このようにリスト内にリストを持つことができます。

同じリスト名を使うと上書きされて入れ替わるので注意してください。

リスト内アイテムの呼び出し

アイテム呼び出し: リスト名[アイテム番号]
アイテムの順番を確認: index(探すアイテム)
アイテムを探す: アイテム in リスト名
アイテムの数を確認: len(リスト名)

アイテム番号は0から数えるので注意してください。また下の例のように、マイナスを使って後ろから数えることもできます。
最後の例は’Mon’がlist4の中にあるかを確認しています。この場合はPoolの型が出力されます。

list4 = ['Mon', 'Tue', 'Wed']
list4[0]
Out[1]: 'Mon'
list5 = ['a', 'b', 1, 2]
list5[1]
Out[2]: 'b'
list5[-1]
Out[3]: 2
list5.index(1)
Out[4]: 2
'Mon' in list4
Out[5]: True
len(list4)
Out[6]: 3

アイテムを複数取り出すこともできます。

list7 = ['Mon', 'Tue', 'Wed', 'Thu']
list7[0:2]
Out[7]: ['Mon', 'Tue']
list7[1:]
Out[8]: ['Tue', 'Web', 'Thu']

: を使って数字の範囲を指定します。”0:2″ はリスト内のアイテムの内1から2番目、”1:” は2番目以降すべてを指定しています。

リスト内アイテムの追加、削除

アイテムを末尾に追加: .append(アイテム名)
アイテムを任意の順番に追加: .insert(アイテム番号, アイテム名)
アイテム名で削除: .remove(アイテム名)
アイテムの順番で削除: del リスト名[アイテム番号]

list7 = ['Mon', 'Tue', 'Wed', 'Thu']
list7.append('Fri')
list7
Out[9]: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
list7.insert(0, 'Sun')
list7
Out[10]: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri']
list7.remove('Tue')
list7
Out[11]: ['Sun', 'Mon', 'Wed', 'Thu', 'Fri']
del list7[1]
list7
Out[11]: ['Sun', 'Wed', 'Thu', 'Fri']



リストの結合

リストの連結: リスト名 + リスト名
リストの繰り返し: リスト名 * 繰り返す回数

これは直感的で分かりやすいですね。

list8 = [10, 20, 30]
list9 = [40, 50]
list8 + list9
Out[12]: [10, 20, 30, 40, 50]
list8 * 2
Out[13]: [10, 20, 30, 10, 20, 30]

リストのソート

ソート (sort) とは順番を数字やアルファベット順に並べ変えることです。

リストの順方向ソート: sort(), sorted
リストの逆方向ソート: sort(reverse=True)

sort()を使うと既存のリストの内部を書き換えてソートします。sortedを使うと既存のリストをコピーしてソートします。

list10 = [1, 3, 2]
list10.sort()
list10
Out[14]: [1, 2, 3]
list11 = ['Mon', 'Tue', 'Wed']
list11.sort(reverse=True)
list11
Out[15]: ['Wed', Tue', 'Mon']
sorted(list11)
Out[16]: ['Mon', 'Tue', 'Wed']
list11
Out[17]: ['Wed', Tue', 'Mon']

sorted(list11) を使って順方向にリストをソートしました。しかし、list11自体は変更されていません。
このように、元リストの順番を変えずにソートをすることができます。

リストのコピー

最後はリストのコピーについてです。

リストのコピー: リスト名 = リスト名, .copy, list(リスト名)

次の例ではすべてのリストがlist12と同じものになります。

list12 = [1, 3, 2]
list13 = list12
list14 = list12.copy()
list15 = list(list12)

リストの一部をコピーしたい場合はリストの範囲を指定します。

list12 = [1, 3, 2]
list16 = list12[0:2]
list16
Out[18]: [1, 3]

まとめ

今回はPythonで良く使われるList (リスト) について見てきました。使い方をしっかりとマスターしておきましょう!

  •  リストの作り方
  •  リスト内アイテムの呼び出し
  •  リスト内アイテムの追加、削除
  •  リストの結合とソート
  •  リストのコピー