萬九郎の硬い船

プログラミング学習記録など

タプルの何がいいのかを理解する

Pythonのオブジェクトのひとつにタプル(tuple)があり、これは複数の要素の組み合わせをひとつのものとして扱える。具体的には、座標とかを

(0, 100)

のように、コンマで区切り丸括弧で囲んで作る。シーケンス型であり、インデックスで値を取り出せる。後から含まれる要素の変更ができない(immutable)のが特徴で、これには

  • ディクショナリのキーにできる
  • 集合(set)の要素にできる

という利点がある。含まれる要素の変更ができる(mutable)性質をもつリストは、重複の可能性があるためディクショナリのキーや集合の要素にはできない。 タプルの利点によって、たとえば、「現在地の座標のタプル」と「座標のタプルをキーとして持つ駅名のディクショナリ」によって、最寄り駅を探すプログラムを作ったりできるようだ。 要素がひとつの場合、(1)のようにすると括弧つき数字と認識されてしまうため、

(1,)

のようにコンマを最後につける。ただ、要素がひとつのタプルって何に使うんだろう?一度生成した単一の何かの値を固定しておきたい場合なんだろうとは思うが、具体的な場面は学習を進めるうちに出てくるのかもしれない。