【6日でできるPython入門】組み込み型 タプル

Pythonのタプル(tuple)は、リストによく似た「複数データをまとめて扱う」組み込み型のひとつです。
大きな違いは、タプルは一度作ったら中身を変更できない(イミュータブル型)という点です。
「絶対に書き換えたくない複数のデータ」を安全に束ねたいとき、タプルを使うのがPython流です。
ここでは、タプルの基本的な使い方とリストとの違い、アンパック(複数同時代入)の便利な書き方を学びます。

1.タプルの基本

1.1. タプルの作成と使い方

タプルは**丸括弧( () )**を使い、カンマ区切りで値を並べて作成します。
どんな型でもOK、空のタプルや1要素タプルも作成可能です。

ファイル名: lesson08-1.py

# 動物名やデータのグループをタプルで表すプログラム

animals = ('ライオン', 'キリン', 'シマウマ', 'ゾウ')
print("動物リスト:", animals)
print("1番目の動物:", animals[0])
print("先頭から3つ:", animals[:3])

empty = ()
one = ('パンダ',)
print("空のタプル:", empty)
print("1要素のタプル:", one)
print("型チェック:", type(one))
not_tuple = ('パンダ')
print("カンマなし1要素の場合の型:", type(not_tuple))

実行結果

動物リスト: ('ライオン', 'キリン', 'シマウマ', 'ゾウ')
1番目の動物: ライオン
先頭から3つ: ('ライオン', 'キリン', 'シマウマ')
空のタプル: ()
1要素のタプル: ('パンダ',)
型チェック: <class 'tuple'>
カンマなし1要素の場合の型: <class 'str'>
記述説明
('A', 'B', 'C')3要素のタプル
()空のタプル
('A',)1要素のタプル(カンマ必須!
('A')文字列として認識される(タプルじゃない)

1.2. シーケンス型としての操作

タプルもリスト同様、インデックスやスライスで要素にアクセスできます。

ファイル名: lesson08-2.py

scores = (85, 92, 78, 90)
print("最高点:", max(scores))
print("3番目まで:", scores[:3])

実行結果

最高点: 92
3番目まで: (85, 92, 78)

2.タプルとリストの違い

2.1. タプルはイミュータブル型

タプルは「イミュータブル(変更不可)」です。
要素の変更や追加・削除は一切できません。

ファイル名: lesson08-3.py

weekdays = ('月', '火', '水')
# weekdays[0] = '日'     # ←エラー
# weekdays.append('木')  # ←エラー

エラー例

TypeError: 'tuple' object does not support item assignment
AttributeError: 'tuple' object has no attribute 'append'
変更追加削除用途例
リスト日々追加・削除されるデータ
タプル×××不変のグループ・固定設定

2.2. タプルを使うメリット

  • 安全性:変更したくない値のグループ化に最適
  • パフォーマンス:リストより高速な処理ができることが多い
  • 辞書のキーに使える(リストは不可)

3.タプルのアンパック(多重代入)

3.1. タプルの省略記法とアンパック

実は、丸括弧なしでもカンマ区切りならタプル扱いとなります。
また、複数の変数に一度で代入(アンパック)できます。

ファイル名: lesson08-4.py

# アンパック代入の実例
data = '東京', 32, '晴れ'
city, temp, weather = data
print("都市:", city)
print("気温:", temp)
print("天気:", weather)

# 値の入れ替え
x, y = 5, 8
x, y = y, x
print("xとyを入れ替えた結果:", x, y)

実行結果

都市: 東京
気温: 32
天気: 晴れ
xとyを入れ替えた結果: 8 5
記述説明
a, b = 1, 22つの値を一度で変数に代入
a, b = b, a変数の値を一発で交換
city, temp, weather = ...タプルやリストの値を一気に分解

このようにタプルは、「変更しないデータのグループ化や、多重代入」で大きな力を発揮します。
「間違って書き換えたくない」「複数の値をすばやく分解したい」―そんな場面で積極的に使いましょう!