3秒でわかる
作ったあとで中身を差し替えられないシーケンス。座標や戻り値のように「一組で意味を持つ値」をまとめ、辞書のキーにも使えます。
もう少し詳しく
どういうものか
タプルは、複数の値を順番付きで並べた入れ物のうち、一度作ったら要素を入れ替えられないものを指します。Python では丸かっこで書きますが、正体はカンマなので x = 1, 2 でもタプルになります。
point = (35.68, 139.76)
lat, lng = point # 分解して取り出せる
print(point[0]) # 35.68
# point[0] = 0.0 # TypeError になる要素を取り出す、長さを数える、for で回すといった読み取りの操作はリストと同じようにできます。できないのは代入、append、remove など中身を変える操作だけです。
なぜ必要か
変わらないと決まっている値を、変わらない形で持てるからです。関数から複数の値を返すとき、Python は内部でタプルを返しています。受け取った側が誤って書き換えても呼び出し元には伝わらない、という事故が構造的に起きません。
もうひとつの理由がハッシュです。辞書のキーや集合の要素になれるのは、中身が変わらない値だけです。リストはキーにできませんが、タプルならできます。
scores = {}
scores[("2026-08", "python")] = 82 # 年月と科目の組をキーにするつまずきやすいところ
要素がひとつのタプルを (1) と書いてしまう間違いが多いです。これはただの数値の 1 で、かっこは計算の優先順位を表しているだけです。(1,) とカンマを付けて初めて 1 要素のタプルになります。
もうひとつ、変更できないのは「タプルが持つ参照」であって、参照先まで凍るわけではありません。
t = ([1, 2], "a")
t[0].append(3) # これは通る
print(t) # ([1, 2, 3], 'a')中にリストを入れると、そのリストは後から変わります。この状態のタプルは辞書のキーにも使えません。
似た用語との違い
| タプル | リスト | |
|---|---|---|
| 書き方 | (1, 2) | [1, 2] |
| 変更 | できない | できる |
| 辞書のキー | 使える | 使えない |
| 向いている使い方 | 種類の違う値の組 | 同じ種類の値の並び |
住所と緯度経度のように「意味の違う値がひとまとまり」ならタプル、生徒の点数を何人分も貯めるように「同じ意味の値が並ぶ」ならリスト、と考えると迷いません。
覚え方
「後から足したくなるならリスト、足す予定が無いならタプル」で最初は足ります。