<一覧に戻る

リストとタプルの特徴と使い分け

Pythonには、データを格納するための主要なデータ構造として「リスト」と「タプル」があります。これらは似たような機能を持っていますが、いくつかの重要な違いがあります。この教材では、それぞれの特徴を理解し、どのように使い分けるかを学びます。

リストの特徴

  • 可変性: リストは可変(mutable)なデータ構造であり、作成後に要素の追加、削除、変更が可能です。
  • 順序付き: リストは要素の順序を保持します。インデックスを使用して要素にアクセスできます。
  • 多様なデータ型: リストには異なるデータ型の要素を含めることができます。

サンプルコード: リストの基本操作

# リストの作成
fruits = ['apple', 'banana', 'cherry']

# 要素の追加
fruits.append('orange')  # ['apple', 'banana', 'cherry', 'orange']

# 要素の削除
fruits.remove('banana')  # ['apple', 'cherry', 'orange']

# 要素の変更
fruits[1] = 'kiwi'  # ['apple', 'kiwi', 'orange']

# リストの表示
print(fruits)

解説

  • append() メソッドを使ってリストの末尾に要素を追加します。
  • remove() メソッドで特定の要素を削除します。
  • インデックスを使用してリストの要素を変更できます。

タプルの特徴

  • 不変性: タプルは不変(immutable)なデータ構造であり、一度作成するとその内容を変更することができません。
  • 順序付き: タプルも要素の順序を保持し、インデックスでアクセスできます。
  • 多様なデータ型: タプルも異なるデータ型の要素を含めることができます。

サンプルコード: タプルの基本操作

# タプルの作成
coordinates = (10.0, 20.0)

# タプルの要素へのアクセス
x = coordinates[0]  # x = 10.0
y = coordinates[1]  # y = 20.0

# タプルの表示
print(coordinates)

解説

  • タプルはカッコ () で囲むことで作成します。
  • 要素へのアクセスはリストと同様にインデックスを使いますが、要素を変更することはできません。

リストとタプルの使い分け

リストとタプルはそれぞれ特性が異なるため、適切に使い分けることが重要です。

リストを使うべき場合

  • データの変更が必要な場合(例:データの追加、削除)
  • 順序が重要であり、頻繁に更新が行われるデータ

タプルを使うべき場合

  • データが不変であることが保証される場合(例:固定された設定値)
  • ハッシュ化可能なオブジェクトが必要な場合(例:辞書のキーとして使用する際)
  • 複数の値を返す関数の戻り値としてタプルを使用する場合

サンプルコード: リストとタプルの使い分け

# リストを使った例
shopping_list = ['milk', 'bread', 'eggs']
shopping_list.append('butter')  # 更新可能
print("Shopping List:", shopping_list)

# タプルを使った例
dimensions = (1920, 1080)
# dimensions[0] = 1280  # これはエラーになります(不変)
print("Dimensions:", dimensions)

解説

  • shopping_list はリストで、要素を追加することが可能です。
  • dimensions はタプルで、要素を変更しようとするとエラーが発生します。

まとめ

リストとタプルは、どちらもPythonの重要なデータ構造ですが、それぞれの特性を理解し、適切な場面で使い分けることが重要です。リストは可変で更新が必要なデータに、タプルは不変で固定されたデータに使用することをお勧めします。

出力結果: