Pythonのタプルとは?リストとの違いと使い分けを解説
生徒
「Pythonを勉強していて、リストはわかったんですが、タプルって何ですか?同じように見えるんですけど…」
先生
「確かに、見た目が似ているので混乱しやすいですよね。でも、タプルとリストには重要な違いがあるんです。」
生徒
「どうやって使い分けるんですか?」
先生
「では、Pythonのタプルの基本から、リストとの違いと使い分けについて、一緒に見ていきましょう!」
1. Pythonのタプルとは?
Python(パイソン)におけるタプルとは、いくつかの値をまとめて一つにした「データの集まり」のことです。リストと似ていますが、大きな違いは「変更できない」という点です。
例えば、動物の名前が3つ入ったタプルはこんなふうに書きます。
animals = ("ねこ", "いぬ", "うさぎ")
このように丸カッコ () を使って書くのが、タプルの特徴です。
2. リストとの違いは?
Pythonにはタプルのほかに、リストという似たようなデータ型があります。リストは、角カッコ [] を使って書きます。
animals_list = ["ねこ", "いぬ", "うさぎ"]
リストは「中身をあとで変更できる」のに対して、タプルは「中身を変更できない」のが大きな違いです。
たとえば、リストなら後から値を変えたり追加したりできますが、タプルではそれができません。
3. タプルの特徴とメリット
タプルには次のような特徴があります。
- 作成した後に中身を変えることができない(不変性)
- 複数の値をまとめて扱える
- 辞書のキーなど、変更できないデータだけが使える場所で使える
- 誤ってデータを書き換えてしまうミスを防げる
たとえば、「曜日」のように絶対に変わらないデータを扱うときは、リストではなくタプルを使うほうが安全です。
4. タプルの作り方と使い方
タプルは () を使って作成します。また、カンマ , で区切って複数の値を並べます。
colors = ("赤", "青", "緑")
print(colors[0])
赤
このようにインデックス番号(0番目、1番目など)を使って、タプルの中の要素を取り出すことができます。
5. 中身を変更しようとするとエラーになる
タプルは「変更できない」ため、あとから中身を変えようとするとエラーが出ます。
colors = ("赤", "青", "緑")
colors[0] = "黄色" # これはエラーになります
TypeError: 'tuple' object does not support item assignment
このように、タプルの値は変更できない仕様になっているため、安全にデータを守りたい場面で使われます。
6. リストとタプルの使い分け方
では、どのようにリストとタプルを使い分ければ良いのでしょうか?以下のように考えると良いです。
- 後から中身を変更したい → リストを使う
- 絶対に中身を変えたくない → タプルを使う
たとえば、ユーザーの「名前」「生年月日」「登録日」など、変えてはいけない情報にはタプルが向いています。
7. タプルの中にリストを入れると?
実は、タプルの中に「リスト」を入れることもできます。その場合、タプルそのものは変更できませんが、中に入れたリストは変更できます。
data = ("太郎", [1990, 1, 1])
data[1][0] = 2000
print(data)
('太郎', [2000, 1, 1])
このように、「タプルは不変」ですが、中にあるリストは可変(変更できる)なので、注意が必要です。
8. タプルの便利な使い方
タプルは、複数の値を一度に代入(多重代入)したり、関数から複数の値を返すときに便利です。
x, y = (10, 20)
print(x)
print(y)
10
20
このように、変数を2つ一気に設定することができるのも、タプルのメリットです。
9. タプルを使う場面の具体例
タプルは以下のような場面で使われます。
- 座標や位置情報(例:
(35.6895, 139.6917)) - 曜日や月の名前など、固定された一覧
- 関数の戻り値として複数の値を返したいとき
- 辞書のキーとして使いたいとき(リストは使えません)
たとえば、東京の緯度と経度をタプルで表すと次のようになります。
tokyo = (35.6895, 139.6917)
このように、2つの値がペアで固定されているときはタプルが便利です。