Pythonのタプルとは

Pythonのタプルとは

Pythonのタプルは、複数の値を1つのデータ構造にまとめて扱うための組み込み型です。
タプルはリストと似ていますが、いくつかの重要な違いがあります。
主な特徴として、タプルはイミュータブル(不変)であり、一度作成するとその内容を変更することができません。
これに対して、リストはミュータブル(可変)であり、要素の追加や削除、変更が可能です。

タプルは、カンマで区切られた値を括弧で囲むことで作成します。
例えば、次のようにタプルを作成することができます:

t = (1, 2, 3)

また、括弧を省略することもできますが、カンマが必要です:

t = 1, 2, 3

タプルには、1つの要素だけを持つ場合には、要素の後ろにカンマを付ける必要があります。
これにより、Pythonがそのデータがタプルであると認識します:

t = (1,)

タプルの要素にはインデックスを使用してアクセスできます。
インデックスは0から始まります。
例えば、次のようにタプルの要素を取り出すことができます:

t = (10, 20, 30)
print(t[0])  # 10
print(t[1])  # 20
print(t[2])  # 30

タプルのスライスも可能です。
スライスを使うことで、タプルの一部を取り出すことができます:

t = (10, 20, 30, 40, 50)
print(t[1:4])  # (20, 30, 40)

タプルの要素は異なるデータ型であっても構いません。
例えば、数値と文字列を混在させたタプルも作成できます:

t = (1, "hello", 3.14, [1, 2, 3])

タプルはイミュータブルであるため、その要素を変更することはできませんが、タプルの中にリストなどのミュータブルなオブジェクトを含むことはできます。
リストはその要素を変更できるため、タプルの要素としてリストを持っている場合は、リストの内容を変更することができます:

t = (1, [2, 3], 4)
t[1].append(5)
print(t)  # (1, [2, 3, 5], 4)

タプルにはいくつかの組み込みメソッドがあり、例えば、count メソッドで特定の要素がタプル内に何回現れるかをカウントすることができます:

t = (1, 2, 2, 3, 4)
print(t.count(2))  # 2

また、index メソッドを使って、指定した値がタプル内で最初に現れる位置を取得することができます:

t = (10, 20, 30, 40)
print(t.index(30))  # 2

タプルはデータを扱う際にリストよりも軽量であるため、要素の変更が不要な場合に使用するのが適しています。
タプルを使うことで、データが不変であることを保証し、より安全にデータを操作することができます。
また、タプルは辞書のキーとしても使用できるため、データの集合をキーとして利用する際にも便利です。