備忘録

【Python】タプル(tuple)とは?

前提

Python: 3.12

タプルとは?

タプルは、複数の要素をカンマ区切りで囲んで作成するデータ構造だ。リストと同様に、様々なデータ型の要素を格納できるという特徴を持つ。

example_tuple = (1, "apple", 3.14) 
print(example_tuple)
# 出力結果: (1, "apple", 3.14)

上記コードのように、整数、文字列、浮動小数点数など、異なるデータ型の要素を一つのタプルに格納することができる。

リストとの違い: イミュータブルであるということ

タプルとリストの最大の違いは、イミュータブルであるかどうか、という点にある。イミュータブルとは、一度作成した後に要素の変更や削除ができないという性質のことだ。

リストはミュータブルなデータ構造であるため、要素の変更や削除が可能だが、タプルはそれができない。以下のコードを見てみよう。

# リストの場合
example_list = [1, 2, 3]
example_list[0] = 10 
print(example_list) 
# 出力結果: [10, 2, 3]

# タプルの場合
example_tuple = (1, 2, 3)
example_tuple[0] = 10
# エラー発生: 'tuple' object does not support item assignment

リストは要素の変更が可能だが、タプルはエラーが発生することがわかる。

タプルを使うメリット

では、なぜイミュータブルなタプルを使う必要があるのだろうか?それは、プログラムの安全性と効率性を高めることができるからだ。

安全性の向上

タプルを使用することで、意図しないデータの変更を防ぎ、プログラムの安定性を高めることができる。特に、関数の引数や戻り値としてデータを渡す場合に有効だ。

効率性の向上

タプルはリストに比べて処理が高速である。これは、タプルがイミュータブルであるため、Pythonインタープリタが内部的に最適化を行えるためだ。大量のデータを扱う場合、タプルを使用することで処理速度の向上を見込める。

タプルの使いどころ

タプルの特性を踏まえると、以下のような場面で特に有効活用できるだろう。

  • 関数の戻り値として複数の値を返す場合: 複数の値をまとめて扱い、意図しない変更を防ぐことができる。
  • 辞書のキーとして使用する場合: イミュータブルな性質から、辞書のキーとして安全に利用できる。
  • 設定ファイルなどの変更を許可したくないデータの格納: データの整合性を保ち、予期せぬエラーを防ぐことができる。

関連記事