8章タプルとリスト
ヒトという動物は、リストへの情熱によって低次の霊長類と区別される。
—— H・アレン・スミス
3章から5章にかけて、基本データ型であるブール値、整数、浮動小数点数、文字列について説明した。これらを原子とみなすなら、この章で扱うデータ構造は分子に相当する。つまり、基本データ型を組み合わせて、より複雑なデータ構造を作れる。読者はこの章で扱うデータ構造を日常的に使うことになる。プログラミングの現場では、データを特定の形に切り貼りする作業が大きなウェイトを占めるが、この章で取り上げるタプルとリストはその最初の例となる。
大半のプログラミング言語では、要素のシーケンスを作成でき、整数のインデックスで先頭から末尾まで各要素を取り出せる。「4章 文字列」では文字のシーケンスである文字列を、「5章 バイト列」では8ビットのバイナリ値のシーケンスであるバイト列(bytesとbytearray)を紹介した。
これら以外にも、0個以上の要素を持つタプルとリストというシーケンス構造がある。文字列と異なり、要素の型は混在していて構わない。さらに、各要素は任意のPythonオブジェクトで構わない。そのため、いくらでも深く複雑なデータ構造を作成できる。
なぜリストとタプルがあるのか。タプルはイミュータブルであり、一度要素を代入すると、焼き固められたかのように変更できない。これに対して、リストはミュータブルで要素の挿入や削除が可能だ。以下に両者の例を示すが、本章ではリストに焦点を当てる。
8.1 タプル
最初にはっきりさせておきたいことが一つある。tupleの発音には二通りあると聞いたことがあるだろうか。どちらが正しいのか。間違ったほうを使うと、気取っていて変な発音だと思われないか。心配はいらない。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