Python

【Python】第1章第7回:タプル(tuple)の使い方

Pythonのタプル(tuple)は、変更できないデータを扱う際に便利なデータ型です。本記事では、タプルの基本操作から応用的な使い方までを学びます。

0. 記事の概要

この記事を読むメリット

  • タプルの基本操作を理解:タプルの作成、要素のアクセス方法を学べます。
  • リストとの違いを習得:リストとタプルの使い分けが明確になります。
  • 実用的なスキルを取得:データの一貫性を保つためのテクニックを身につけます。

この記事で学べること

  • タプルの基本操作と特性
  • リストとの違いと使い分け
  • タプルを利用した実用例

1. タプルの基本操作

1.1 タプルの作成

タプルは、カンマで区切った要素を丸括弧(())で囲むことで作成します。

# タプルの作成
my_tuple = (1, 2, 3, 4)
print(my_tuple)  # 出力: (1, 2, 3, 4)
動作解説
  1. タプルはリストと似ていますが、要素を変更することができません。
  2. 要素にはインデックスを使用してアクセスできます(例: my_tuple[0]1)。

1.2 タプルのアンパック

タプルの要素を変数に代入するには「アンパック」を使用します。

# タプルのアンパック
a, b, c = (1, 2, 3)
print(a, b, c)  # 出力: 1 2 3
動作解説
  1. アンパックを使用すると、タプルの各要素を個別の変数に代入できます。
  2. 要素数が一致しない場合、エラーが発生します。

2. タプルの応用

2.1 ネストされたタプル

タプルの中にタプルを含めることで、ネストされたデータを表現できます。

# ネストされたタプル
nested_tuple = ((1, 2), (3, 4))
print(nested_tuple[0])  # 出力: (1, 2)
print(nested_tuple[0][1])  # 出力: 2
動作解説
  1. ネストされたタプルは、複数の関連するデータをまとめる際に便利です。
  2. 二重のインデックスを使用して要素にアクセスします。

2.2 タプルの操作例

タプルを使って、値の一貫性を保ちながら複数のデータを管理できます。

# タプルを使用した操作
weekdays = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
for day in weekdays:
    print(day)
動作解説
  1. タプルをforループで反復処理できます。
  2. タプルの内容を変更しないことで、データの一貫性を保つことが可能です。

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("指定された月が見つかりません。")
動作解説
  1. タプルを使用して月名と平均気温をペアで管理します。
  2. index()メソッドを使って、指定された月の位置を取得します。
  3. 月名が見つからない場合はエラーメッセージを表示します。

4. 練習問題

以下の課題に挑戦してみましょう。

  1. タプルを使用して学生の成績(名前と点数)を管理し、最高得点者を表示するプログラムを作成してください。
  2. タプルをアンパックして個々の要素を変数に代入してください。

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のタプルの基本操作と応用を学びました。タプルの不変性を活かしてデータの一貫性を保ちつつ、実用的なプログラムを作成する力を身につけました。