【Python】11_タプルとセットの不変なデータと集合の操作について

Python Python

タプル(Tuple)

タプルは、Pythonにおける不変なデータ型です。リストに似ていますが、要素を変更できない点が異なります。これにより、データの一貫性を保ちたい場合や、変更を避けるべきデータを扱うときに便利です。

タプルの特徴

  1. 不変(イミュータブル)
    一度作成されたら、要素を変更・追加・削除することができません。

  2. 順序付き
    要素にはインデックスがあり、順序を保持します。

  3. 重複を許容
    同じ値を複数回持つことができます。

  4. 高速
    リストに比べて、メモリの効率が良く、操作が高速です。

タプルの例

# タプルの定義
my_tuple = (1, 2, 3, 4)

# タプルの要素にアクセス
print(my_tuple[0])  # 1

# タプルの要素数を取得
print(len(my_tuple))  # 4

# タプルは不変なので、要素の変更はエラーとなる
# my_tuple[1] = 5  # TypeError: 'tuple' object does not support item assignment

タプルを使う場面

  • 変更が不要なデータを扱うとき。例として、緯度経度や日時など、決して変更してはいけない情報に対してタプルを使用します。

  • 辞書のキーとして使う場合。タプルは不変なので、辞書のキーとして利用できます(リストはキーにできません)。

セット(Set)

セットは、Pythonにおける集合を表すデータ型で、重複しない要素の集まりを管理します。数学の集合と同様、重複する要素を許さない特性を持ちます。

セットの特徴:

  1. 無順序
    要素に順序がなく、インデックスでアクセスできません。

  2. 重複を許さない
    同じ要素を2回以上持つことはできません。

  3. 集合演算
    和(|)、積(&)、差(-)、対称差(^)などの集合演算が可能です。

セットの例

# セットの定義
my_set = {1, 2, 3, 4, 4}  # 4は重複しても1回しか保存されない

# 要素を追加
my_set.add(5)

# 要素を削除
my_set.remove(1)

# セット内の全要素にアクセス(順序は保証されない)
print(my_set)  # {2, 3, 4, 5}

# 和集合、積集合、差集合、対称差集合
set1 = {1, 2, 3}
set2 = {3, 4, 5}

print(set1 | set2)  # 和集合: {1, 2, 3, 4, 5}
print(set1 & set2)  # 積集合: {3}
print(set1 - set2)  # 差集合: {1, 2}
print(set1 ^ set2)  # 対称差集合: {1, 2, 4, 5}

セットの使い方

  • 重複を排除
    リストやタプルの中に重複する要素がある場合、それをセットに変換して重複を排除できます。

  • 集合演算
    集合同士の比較や操作を行うとき、数学的な集合演算を使って簡単に処理できます。

  • 要素の所属確認が高速
    セットは要素の検索が高速です(ハッシュテーブルを使用しているため)。

タプルとセットの違い

 

まとめ

  • タプルは、変更されることがないデータを扱う際に使い、順序を持ち、重複を許容します。

  • セットは、重複を排除し、集合演算を行いたい場合に使います。順序はなく、要素の追加や削除が可能です。

コメント

PAGE TOP
タイトルとURLをコピーしました