2.1.5.2 変更可能なシーケンスタイプ

リストオブジェクトは、そのオブジェクト自身を変更できるような付加的な演算をサポートしています。これらの演算は他の変更可能なシーケンスタイプ(言語に追加されたときには)でもサポートされるでしょう。 文字列とタプルは変更できないシーケンスタイプで、このようなオブジェクトは一度作られると変更できません。 以下の演算は変更可能なシーケンスタイプに対して定義されています。 (xは任意のオブジェクトを意味しています)   

演算 結果
s[i] = x sのアイテムixで置き換えられる
s[i:j] = t siから jのスライスがtで置き換えられる
del s[i:j] s[i:j] = []と同じ
s.append(x) s[len(s):len(s)] = [x]と同じ
s.count(x) s[i] == xとなるiの個数を返す
s.index(x) s[i] == xとなる最小のiを返す (1)
s.insert(i, x) i >= 0ならばs[i:i] = [x]と同じ
s.remove(x) del s[s.index(x)]と同じ (1)
s.reverse() そのリスト上でsのアイテムを逆にする (3)
s.sort() そのリスト上でsのアイテムをソートする (2), (3)
              

注:

(1)
xs内になければ例外が発生する。
(2)
sort()メソッドはオプションの引数を持ちます。この引数には、引数(リストのアイテムになる)を2つ持ち、最初の引数が2番目の引数より小さいか、等しいか、大きいかによって-1, 0 または 1を返す比較関数を指定します。これは相当ソート処理の速度を低下させることに注意して下さい。例えば、リストを逆にソートするためにはsort()reverse()を使う方が、要素を逆にソートする比較関数を指定したsort()を使うよりはかなり高速です。

(3)
sort()reverse()メソッドは大きなリストをソートしたり逆転する時のスペース効率のためにリストを同じ場所で変更します。 この副作用として、ソートまたは逆転されたリストは戻り値としては返されないことに注意して下さい。

guido@python.org