以前、複数のデータをまとめて管理できるリスト(https://augmented-vr.com/use-lists-in-python/)について学習しました。リストは後からデータを追加したり変更したりできる便利なものでしたが、今回はリストとよく似ているけれど「一度作ったら中身を絶対に変更できない」という特徴を持つ「タプル(tuple)」について解説します。
タプルを使用する
リストは角括弧[]を使って作成しましたが、タプルは丸括弧()を使って作成します。中身のデータを取り出す方法はリストと全く同じで、インデックス番号(0から始まる番号)を指定します。
Pythonでタプルを作成するには、変数名、イコール「=」、丸括弧「()」を使います。括弧の中に、データをカンマ「,」で区切って記述します。なので例としてタプルは、
変数名 = (データ1, データ2, データ3, ・・・)の形式で記述します。
では、実際にやってみましょう。
Google Colaboratory(Colab) を開いて新しいノートブックを作成し、タプルを作成して中身を表示するプログラムを書いてみます。
# 果物のタプルを作成する
fruits_tuple = ("もも", "なし", "かき")
# 1番目(インデックス0)の要素を表示する
print("最初の果物: " + fruits_tuple[0])
# for文を使って、タプルの中身を順番に表示する
print("--- すべての果物 ---")
for fruit in fruits_tuple:
print(fruit)とセルに入力して実行してみましょう。すると結果は
最初の果物: もも
— すべての果物 —
もも
なし
かき
のように表示されます。
プログラムの解説
- タプルの作成(2行目): 変数
fruits_tupleに丸括弧を使って「もも」「なし」「かき」のデータを持つタプルを代入しています。 - 要素の取り出し(5行目): リストの時と同じように角括弧
[0]を使って、タプルの最初のデータ(もも)を取り出してprint関数で表示しています。 - for文で繰り返す(9~10行目): for文を使って、タプルの中から一つずつデータを取り出し、変数
fruitに代入して順番に表示しています。
タプルは変更できない(エラーの確認)
タプルの最大の特徴は「変更ができない」ことです。リストのように後から中身を上書きしようとするとどうなるか、Colabで試してみましょう。
# 果物のタプルを作成する
fruits_tuple = ("もも", "なし", "かき")
# 最初の要素を「ぶどう」に書き換えようとする(ここでエラーになります)
fruits_tuple[0] = "ぶどう"とセルに入力して実行してみましょう。すると結果は
TypeError: ‘tuple’ object does not support item assignment
というようなエラー(TypeError)が表示されて、プログラムが停止してしまいます。これはPythonが「タプルは中身の書き換え(代入)をサポートしていません」と教えてくれているのです。
なぜ「変更できない」データが必要?
「変更できないと不便ではないのか」と思うかもしれません。しかし、プログラムを作るうえではこの「変更できない」という性質がとても重要になります。
例えば、以下のようなデータは途中で変わってしまっては困ってしまいます。
- 地図上の特定の場所の「緯度・経度」
- 画面の「縦・横のサイズ」
- 曜日(月,火,水,木,金,土,日)のリスト
もしこれらをリストで作ってしまうと、プログラムのどこかで間違えてdays[0] = "日" のように上書きしてしまった時、原因を見つけるのが大変なバグ(不具合)になってしまいます。最初からタプル () で作っておけば、万が一プログラムが間違えてデータを上書きしようとしても、Pythonがエラーを出して未然に防いでくれるので、安全性が担保されるというメリットがあります。
まとめ
- タプルとは:丸括弧
()を使って複数のデータをまとめる機能。 - リストとの違い: インデックスで値を取り出すことやfor文での使い方はリストと同じだが、一度作ると中身の変更・追加・削除ができない。
- タプルを使うメリット: 絶対に変更されたくない重要なデータを、間違って上書きしてしまうミスから守ることができる。
リストとタプルの違いを理解して、扱うデータに合わせて適切に使い分けてみましょう。

今回はこれで終了です。
今回のサンプルを用意したので、もし必要な場合は上の「Open in Colab」と書いてあるボタンをクリックしてください。なおそのままだと編集不可なので編集をしたい場合は「ドライブにコピー」をクリックしてコピーしてください。
なおGoogle ColaboratoryについてわからなかったらGoogleColaboratoryを使ってみよう_導入編をご覧ください。