
スポンサーリンク
Pythonを学び始めると、タプル(tuple)というデータ型に出会います。 「タプルって何?リストと何が違うの?」「タプルに要素を追加したいけどできない?」「どうやって取り出したり変換したりするの?」という疑問を持ったことがある方に向けて、この記事ではPythonタプルの追加・取り出し・変換について丁寧に解説します。
タプルの基本的な使い方
Pythonにおけるタプル(tuple)は、複数の値を一つのデータ構造にまとめることができるイミュータブル(変更不可)なデータ型です。リスト(list)と似ていますが、タプルは一度作成すると要素の追加や変更ができません。
タプルの作成方法(複数)
タプルは ()
(丸括弧)を使って作成できます。
# タプルの作成fruits = ("apple", "banana", "cherry")print(fruits) # ('apple', 'banana', 'cherry')
異なる型の要素を並べることもできます。
multi = (1, "Python", True)print(multi) # (1, 'Python', True)
また、カンマ(,
)区切りで要素を並べることで、丸括弧なしでもタプルを作成できます。
numbers = 1, 2, 3print(numbers) # (1, 2, 3)
タプルの作成方法(単一)
単一の要素を持つタプルを作成する場合は、要素の後にカンマを付ける必要があります。
single_tuple = ("apple",)print(single_tuple) # ('apple',)
カンマを付けないと単なる文字列(または数値)として扱われます。
not_a_tuple = ("apple")print(type(not_a_tuple)) # <class 'str'>
インデックスでタプルの要素を取り出す
タプルの要素にはインデックスを指定してアクセスできます。
fruits = ("apple", "banana", "cherry")print(fruits[0]) # appleprint(fruits[1]) # banana
スライスでタプルの要素を取り出す
スライスを使って部分的に取得することも可能です。
numbers = (0, 1, 2, 3, 4, 5)print(numbers[1:4]) # (1, 2, 3)
タプルの応用的な使い方
関数からタプルを受け取る
関数が複数の値を返す場合、タプルを使って簡単に分割代入できます。
def get_info(): return "Alice", 25, "Engineer"
name, age, job = get_info()print(name) # Aliceprint(age) # 25print(job) # Engineer
タプルをforループで取り出す
タプルはforループで取り出すこともできます。
fruits = ("apple", "banana", "cherry")for item in fruits: print(item)
タプルの結合(+)と繰り返し(*)方法
タプル同士を +
で結合したり、*
で繰り返したりできます。
tuple1 = (1, 2, 3)tuple2 = (4, 5, 6)new_tuple = tuple1 + tuple2print(new_tuple) # (1, 2, 3, 4, 5, 6)
repeated_tuple = tuple1 * 3print(repeated_tuple) # (1, 2, 3, 1, 2, 3, 1, 2, 3)
タプルを複数の変数に分割する
タプルの要素を複数の変数に分割して代入することができます。
tuple_data = (10, 20, 30)a, b, c = tuple_dataprint(a) # 10print(b) # 20print(c) # 30
また、*
を使って残りの要素をリストとして格納することも可能です。
tuple_data = (1, 2, 3, 4, 5)a, *b, c = tuple_dataprint(a) # 1print(b) # [2, 3, 4]print(c) # 5
タプルの分割代入を活用すると、変数の値を簡単に交換することもできます。
a, b = 5, 10a, b = b, aprint(a) # 10print(b) # 5
これは、一時変数を使わずに値を入れ替える便利な方法です。
タプルを辞書のキーとして使用する
タプルはイミュータブルなため、辞書のキーとして使用できます。
locations = { (35.6895, 139.6917): "Tokyo", (40.7128, -74.0060): "New York"}print(locations[(35.6895, 139.6917)]) # Tokyo
タプルはイミュータブルなデータ構造
Pythonのデータ型は、大きく分けて イミュータブル(変更不可) と ミュータブル(変更可能) に分類されます。
- イミュータブル(Immutable): 一度作成されたら内容を変更できないデータ型。
- 例:
int
,float
,str
,tuple
- 例:
- ミュータブル(Mutable): 内容を変更したり、要素を追加・削除できるデータ型。
- 例:
list
,dict
,set
- 例:
イミュータブルの例(タプル)
タプルの大きな特徴は、要素の変更ができないことです。
fruits = ("apple", "banana", "cherry")fruits[0] = "grape" # エラー発生
タプルはイミュータブルなので、作成後に要素の変更はできません。
ミュータブルの例(リスト)
fruits_list = ["apple", "banana", "cherry"]fruits_list[0] = "grape" # 問題なく変更可能print(fruits_list) # ['grape', 'banana', 'cherry']
リストはミュータブルなので、要素を自由に変更できます。
タプルの要素を変更する
タプルの要素を変更する必要がある場合は、タプルをリストに変換してから編集し、再びタプルに戻す方法があります。
fruits = ("apple", "banana", "cherry")fruits_list = list(fruits) # リストに変換fruits_list[0] = "grape"fruits = tuple(fruits_list) # 再びタプルに変換print(fruits) # ('grape', 'banana', 'cherry')
タプルとリストの違い
違いを表でまとめると下記の通りです。
項目 | タプル | リスト |
---|---|---|
変更 | ❌ 不可 | ✅ 可 |
速度 | ✅ 速い | ❌ やや遅い |
メモリ消費 | ✅ 少ない | ❌ 多め |
使用例 | 座標・定数の表現 | 汎用的な配列操作 |
タプルまとめ
- タプルはイミュータブルなデータ型で、一度作成すると変更できない。
- インデックスやスライスで要素を取得できる。
+
や*
を使って結合や繰り返しが可能。*
を使った分割代入が可能。- 変数のスワップや関数の戻り値の受け取りに便利。
- 関数の戻り値や辞書のキーとして便利に使える。
Pythonでタプルを適切に使いこなすことで、より安全で効率的なコードを書くことができます。
Pythonユーザにお勧めの本
![]() |
スッキリわかるPython入門 第2版
新品価格
|

![]() |
新品価格
|

![]() |
VTuberサプーが教える! Python
新品価格
|

![]() |
Python1年生 第2版
新品価格
|

以上で本記事の解説を終わります。
よいITライフを!