Pythonタプル完全ガイド!基本から応用まで徹底解説【初心者向け】

Pythonタプル完全ガイド!基本から応用まで徹底解説【初心者向け】

記事の文字数:1356

Pythonのタプル(tuple)は、リストと似たデータ構造ですが、一度作成すると要素を変更できないイミュータブル(変更不可)な特徴を持ちます。本記事では、タプルの基本的な使い方から、リストとの違い、スライスや分割代入の活用方法まで詳しく解説します。初心者にもわかりやすいコード例を交えて、タプルの実装例も紹介します。


スポンサーリンク

Pythonにおけるタプル(tuple)は、複数の値を一つのデータ構造にまとめることができるイミュータブル(変更不可)なデータ型です。リスト(list)と似ていますが、タプルは一度作成すると要素の追加や変更ができません。

タプルの基本的な使い方

タプルの作成

タプルは ()(丸括弧)を使って作成できます。

tuple-ex1.py
# タプルの作成
fruits = ("apple", "banana", "cherry")
print(fruits) # ('apple', 'banana', 'cherry')

また、カンマ(,)区切りで要素を並べることで、丸括弧なしでもタプルを作成できます。

tuple-ex2.py
numbers = 1, 2, 3
print(numbers) # (1, 2, 3)

単一要素のタプル

単一の要素を持つタプルを作成する場合は、要素の後にカンマを付ける必要があります。

tuple-ex3.py
single_tuple = ("apple",)
print(single_tuple) # ('apple',)

カンマを付けないと単なる文字列(または数値)として扱われます。

tuple-ex4.py
not_a_tuple = ("apple")
print(type(not_a_tuple)) # <class 'str'>

タプルの操作

インデックスアクセス

タプルの要素にはインデックスを指定してアクセスできます。

tuple-ex5.py
fruits = ("apple", "banana", "cherry")
print(fruits[0]) # apple
print(fruits[1]) # banana

スライス

スライスを使って部分的に取得することも可能です。

tuple-ex6.py
numbers = (0, 1, 2, 3, 4, 5)
print(numbers[1:4]) # (1, 2, 3)

結合と繰り返し

タプル同士を + で結合したり、* で繰り返したりできます。

tuple-ex7.py
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
new_tuple = tuple1 + tuple2
print(new_tuple) # (1, 2, 3, 4, 5, 6)
repeated_tuple = tuple1 * 3
print(repeated_tuple) # (1, 2, 3, 1, 2, 3, 1, 2, 3)

複数の変数に分割して代入

タプルの要素を複数の変数に分割して代入することができます。

tuple-ex8.py
tuple_data = (10, 20, 30)
a, b, c = tuple_data
print(a) # 10
print(b) # 20
print(c) # 30

また、* を使って残りの要素をリストとして格納することも可能です。

tuple-ex9.py
tuple_data = (1, 2, 3, 4, 5)
a, *b, c = tuple_data
print(a) # 1
print(b) # [2, 3, 4]
print(c) # 5

変数のスワップ

タプルの分割代入を活用すると、変数の値を簡単に交換できます。

tuple-ex10.py
a, b = 5, 10
a, b = b, a
print(a) # 10
print(b) # 5

これは、一時変数を使わずに値を入れ替える便利な方法です。

関数の戻り値の受け取り

関数が複数の値を返す場合、タプルを使って簡単に分割代入できます。

tuple-ex11.py
def get_info():
return "Alice", 25, "Engineer"
name, age, job = get_info()
print(name) # Alice
print(age) # 25
print(job) # Engineer

イミュータブルとミュータブルの違い

Pythonのデータ型は、大きく分けて イミュータブル(変更不可)ミュータブル(変更可能) に分類されます。

  • イミュータブル(Immutable): 一度作成されたら内容を変更できないデータ型。
    • 例: int, float, str, tuple
  • ミュータブル(Mutable): 内容を変更したり、要素を追加・削除できるデータ型。
    • 例: list, dict, set

イミュータブルの例(タプル)

タプルの大きな特徴は、要素の変更ができないことです。

tuple-ex12.py
fruits = ("apple", "banana", "cherry")
fruits[0] = "grape" # エラー発生

タプルはイミュータブルなので、作成後に要素の変更はできません。

ミュータブルの例(リスト)

tuple-ex13.py
fruits_list = ["apple", "banana", "cherry"]
fruits_list[0] = "grape" # 問題なく変更可能
print(fruits_list) # ['grape', 'banana', 'cherry']

リストはミュータブルなので、要素を自由に変更できます。

タプルの要素を変更する必要がある場合は、タプルをリストに変換してから編集し、再びタプルに戻す方法があります。

tuple-ex14.py
fruits = ("apple", "banana", "cherry")
fruits_list = list(fruits) # リストに変換
fruits_list[0] = "grape"
fruits = tuple(fruits_list) # 再びタプルに変換
print(fruits) # ('grape', 'banana', 'cherry')

タプルの活用例

複数の値を返す関数

関数から複数の値を返す際にタプルを活用できます。

tuple-ex15.py
def get_coordinates():
return (35.6895, 139.6917)
latitude, longitude = get_coordinates()
print(latitude, longitude) # 35.6895 139.6917

辞書のキーとして使用

タプルはイミュータブルなため、辞書のキーとして使用できます。

tuple-ex16.py
locations = {
(35.6895, 139.6917): "Tokyo",
(40.7128, -74.0060): "New York"
}
print(locations[(35.6895, 139.6917)]) # Tokyo

まとめ

  • タプルはイミュータブルなデータ型で、一度作成すると変更できない。
  • インデックスやスライスで要素を取得できる。
  • +* を使って結合や繰り返しが可能。
  • * を使った分割代入が可能。
  • 変数のスワップや関数の戻り値の受け取りに便利。
  • 関数の戻り値や辞書のキーとして便利に使える。

Pythonでタプルを適切に使いこなすことで、より安全で効率的なコードを書くことができます。


以上で本記事の解説を終わります。
よいITライフを!
スポンサーリンク
Scroll to Top