Pythonのタプル(Tuple)とは?リストとの違いや使い方をやさしく解説
Pythonのタプル(Tuple)は、複数の値を1つの変数にまとめて保持できるデータ型です。
リストと似ていますが、「変更不可(イミュータブル)」である点が大きな違いです。
タプルの基本構文
point = (10, 20)
colors = ("赤", "青", "緑")
single = (5,) # 要素1つのときはカンマが必要
タプルは ()
(丸括弧)で囲み、カンマで区切って要素を記述します。
ただし、カンマの有無が構文として重要なので注意が必要です。
要素の取得(インデックスアクセス)
print(point[0]) # → 10
print(colors[-1]) # → 緑(末尾)
インデックスの使い方はリストと同じです。
イミュータブルとは?
タプルは一度作成すると中身を変更できません。
以下のような操作はエラーになります。
point[0] = 5 # → TypeError
リストとの違い
特徴 | リスト | タプル |
定義方法 | [1, 2, 3] | (1, 2, 3) |
変更 | 可能(ミュータブル) | 不可(イミュータブル) |
速度 | やや遅い | リストより高速 |
用途 | 可変のデータ | 固定されたデータ |
複数の値を一括で返すときに便利
def calc(a, b):
return a + b, a * b
sum_val, product = calc(3, 5)
print(sum_val) # → 8
print(product) # → 15
複数の値を返すと、自動的にタプルとしてまとめられます。
タプルの応用:辞書のキーや集合の要素に使える
location = {(35.68, 139.76): "東京"}
print(location[(35.68, 139.76)]) # → 東京
タプルは変更できない=ハッシュ可能なので、辞書のキーや集合の要素として使えます。
タプルのアンパック(分解)
person = ("さくら", 20)
name, age = person
print(name) # → さくら
a, b = タプル
の形で、それぞれの値を変数に展開(アンパック)できます。
まとめ
Pythonのタプル(Tuple)は、変更されることのないデータの塊を表現するのに適しています。
リストに似た使い方ができますが、変更できないため安全性やパフォーマンスに優れたデータ型です。
値が固定されている設定や、関数の戻り値などで積極的に活用してみましょう!