
スポンサーリンク
Pythonにおけるタプル(tuple)は、複数の値を一つのデータ構造にまとめることができるイミュータブル(変更不可)なデータ型です。リスト(list)と似ていますが、タプルは一度作成すると要素の追加や変更ができません。
タプルの基本的な使い方
タプルの作成
タプルは ()
(丸括弧)を使って作成できます。
# タプルの作成fruits = ("apple", "banana", "cherry")print(fruits) # ('apple', 'banana', 'cherry')
また、カンマ(,
)区切りで要素を並べることで、丸括弧なしでもタプルを作成できます。
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)
結合と繰り返し
タプル同士を +
で結合したり、*
で繰り返したりできます。
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
これは、一時変数を使わずに値を入れ替える便利な方法です。
関数の戻り値の受け取り
関数が複数の値を返す場合、タプルを使って簡単に分割代入できます。
def get_info(): return "Alice", 25, "Engineer"
name, age, job = get_info()print(name) # Aliceprint(age) # 25print(job) # Engineer
イミュータブルとミュータブルの違い
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')
タプルの活用例
複数の値を返す関数
関数から複数の値を返す際にタプルを活用できます。
def get_coordinates(): return (35.6895, 139.6917)
latitude, longitude = get_coordinates()print(latitude, longitude) # 35.6895 139.6917
辞書のキーとして使用
タプルはイミュータブルなため、辞書のキーとして使用できます。
locations = { (35.6895, 139.6917): "Tokyo", (40.7128, -74.0060): "New York"}print(locations[(35.6895, 139.6917)]) # Tokyo
まとめ
- タプルはイミュータブルなデータ型で、一度作成すると変更できない。
- インデックスやスライスで要素を取得できる。
+
や*
を使って結合や繰り返しが可能。*
を使った分割代入が可能。- 変数のスワップや関数の戻り値の受け取りに便利。
- 関数の戻り値や辞書のキーとして便利に使える。
Pythonでタプルを適切に使いこなすことで、より安全で効率的なコードを書くことができます。
以上で本記事の解説を終わります。
よいITライフを!