複数のオブジェクトを格納することのできる箱のようなもの。
配列とは異なり、型や形状の制約はない(はず)。
基本操作
要素を追加する append
戻り値無しで、対象のリストが更新される。
要素を挿入する insert
list.insert(<挿入する位置>, <挿入する要素>)
戻り値無しで、対象のリストが更新される。
要素を削除する del
delは要素に限らず一般に使われる、オブジェクトを削除する手続きである。リストの要素に対して使うとその要素がリストから削除される。
同じく戻り値無しで、対象のリストが更新される。
リストを結合する +
リストを複製する *
範囲や間隔を指定する :
iterable[begin:end(:interval)]
beginからendまで、intervalの間隔でiterableから要素を抜き出してできるリストを返す。ただしend番目の要素は含まない。
要素番号が負のときは後ろから数える。-1が一番後ろ。
intervalは省略可能。負のときは後ろから進む。例えば-1にすると反転する。
要素が含まれるか判定する in
要素がリスト内にあるか確認する。
場所を調べる index
要素がリスト内に含まれている場合は、最初に現れるものの位置が返される。
存在しない場合には'ValueError'が発生。
要素の数を調べる count
指定の要素がリスト内にいくつ含まれているかを調べる。
List comprehensions
リスト内包表記
[expression for varName in iterable]
で、iterableの各要素をvarNameとしてexpressionに代入した結果がリストとして得られる。
関数も使える。
if文
if else文
zip
もちろんenumerateなども使える。通常のfor文で書くと行数が嵩んで見づらくなるので、使えるときは(読みにくくならない範囲で)内包表記を使っていくとよい。
多重内包表記なども可能だが、やりすぎると何をしているのか分かりにくくなるので注意。