7章タプルとリスト
ヒトという動物は、リストへの情熱によって
低次の霊長類と区別される。
──H・アレン・スミス
今までの章では、ブール値、整数、浮動小数点数、文字列という基本データ型を説明した。これらを原子と考えるなら、この章で取り上げるデータ構造は分子のようなものだ。つまり、これらの基本データ型を組み合わせて複雑なデータ構造を作れるのである。みなさんは、この章のデータ構造を毎日使うことになるだろう。プログラミングの仕事では、特定の形でデータを切り貼りする作業が大きなウェートを占めるが、これらのデータ構造は弓のこやグルーガンの役割を果たす。
ほとんどのコンピュータ言語は、要素のシーケンスを作ることができ、整数のインデックスで先頭から末尾までの各要素を取り出せるようになっている。すでにPythonの文字列を紹介したが、これは文字のシーケンスだ。
Pythonには、文字列以外にタプルとリストの2種類のシーケンス構造があり、0個以上の要素を持つことができる。文字列とは異なり、要素は型が異なってもよい。それだけではなく、個々の要素は任意のPythonオブジェクトでよい。そのため、いくらでも深く、複雑なデータ構造を作れる。
なぜPythonにはリストとタプルの2種類があるのだろうか。タプルはイミュータブルであり、タプルに要素を代入すると、それは焼き固められたように、書き換えられなくなる。それに対し、リストはミュータブルで、要素の挿入と削除を行うことができる。これからそれぞれの例を多数お見せするが、リストに重点を置く。
7.1 タプル
最初にはっきりさせておきたいことが1つある。tupleには2種類の発音の方法があるという話を聞いたことがあるだろうか。どちらが正しいのだろう。間違ったほうを使っていると、気取って変な発音をしていると思われたりはしないだろうか。心配はいらない。Pythonの作者であるグイド・ヴァン・ロッサムが次のようにツイート( ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access