
94
第 4 章 シーケンスとコンテナ型
start
、
end
を指定したときは、スライス演算と同じ規則で指定する範囲から、
sub
を検索しま
す。
>>> t = (1, 2, 3, 1, 2, 3)
>>> t.index(2, 3)
4
>>> t.index(2, 3, 4)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple
4.3.4
リストとタプル
Python
では、リストとタプルという、シーケンスとして使えるデータ構造が
2
つ用意されてい
ます。更新可能なリストがあるのに、別にもう一つ、更新不能なタプルは必要なのでしょうか?
更新不能なシーケンスのメリットに、辞書のキーや集合の要素として使用できるという点があり
ます。更新可能なリストは、辞書のキーや集合の要素には使用できません。
>>> L = [1,2]
>>> d = {L:0} #
リストをキーとして辞書に登録すると、エラーが発生する
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
また、リストとタプルには、想定される使い方にも違いがあります。
一般に、リストに登録される要素は、それぞれが独立したデータです。多くの場合、リストの要 ...