【Python】第1章第7回:タプル(tuple)の使い方
Pythonのタプル(tuple
)は、変更できないデータを扱う際に便利なデータ型です。本記事では、タプルの基本操作から応用的な使い方までを学びます。
0. 記事の概要
この記事を読むメリット
- タプルの基本操作を理解:タプルの作成、要素のアクセス方法を学べます。
- リストとの違いを習得:リストとタプルの使い分けが明確になります。
- 実用的なスキルを取得:データの一貫性を保つためのテクニックを身につけます。
この記事で学べること
- タプルの基本操作と特性
- リストとの違いと使い分け
- タプルを利用した実用例
1. タプルの基本操作
1.1 タプルの作成
タプルは、カンマで区切った要素を丸括弧(()
)で囲むことで作成します。
# タプルの作成
my_tuple = (1, 2, 3, 4)
print(my_tuple) # 出力: (1, 2, 3, 4)
動作解説
- タプルはリストと似ていますが、要素を変更することができません。
- 要素にはインデックスを使用してアクセスできます(例:
my_tuple[0]
は1
)。
1.2 タプルのアンパック
タプルの要素を変数に代入するには「アンパック」を使用します。
# タプルのアンパック
a, b, c = (1, 2, 3)
print(a, b, c) # 出力: 1 2 3
動作解説
- アンパックを使用すると、タプルの各要素を個別の変数に代入できます。
- 要素数が一致しない場合、エラーが発生します。
2. タプルの応用
2.1 ネストされたタプル
タプルの中にタプルを含めることで、ネストされたデータを表現できます。
# ネストされたタプル
nested_tuple = ((1, 2), (3, 4))
print(nested_tuple[0]) # 出力: (1, 2)
print(nested_tuple[0][1]) # 出力: 2
動作解説
- ネストされたタプルは、複数の関連するデータをまとめる際に便利です。
- 二重のインデックスを使用して要素にアクセスします。
2.2 タプルの操作例
タプルを使って、値の一貫性を保ちながら複数のデータを管理できます。
# タプルを使用した操作
weekdays = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
for day in weekdays:
print(day)
動作解説
- タプルを
for
ループで反復処理できます。 - タプルの内容を変更しないことで、データの一貫性を保つことが可能です。
3. 実践例:タプルを活用したプログラム
タプルを活用して、月ごとの平均気温を管理し、特定の月の値を取得するプログラムを作成します。
# 平均気温を管理するタプル
average_temperatures = ("January", 5.2, "February", 7.1, "March", 10.4)
# 月名を入力して平均気温を取得
month = input("月名を入力してください(January, February, ...): ")
if month in average_temperatures:
index = average_temperatures.index(month)
print(f"{month}の平均気温は {average_temperatures[index + 1]} 度です。")
else:
print("指定された月が見つかりません。")
動作解説
- タプルを使用して月名と平均気温をペアで管理します。
index()
メソッドを使って、指定された月の位置を取得します。- 月名が見つからない場合はエラーメッセージを表示します。
4. 練習問題
以下の課題に挑戦してみましょう。
- タプルを使用して学生の成績(名前と点数)を管理し、最高得点者を表示するプログラムを作成してください。
- タプルをアンパックして個々の要素を変数に代入してください。
5. 練習問題の解答と解説
問1の解答例
# 学生の成績を管理
grades = (("Alice", 85), ("Bob", 92), ("Charlie", 88))
top_student = max(grades, key=lambda x: x[1])
print(f"最高得点者: {top_student[0]} 点数: {top_student[1]}")
問2の解答例
# タプルのアンパック
person = ("John", 25, "Engineer")
name, age, profession = person
print(f"名前: {name}, 年齢: {age}, 職業: {profession}")
6. まとめ
Pythonのタプルの基本操作と応用を学びました。タプルの不変性を活かしてデータの一貫性を保ちつつ、実用的なプログラムを作成する力を身につけました。