タプル(Tuple)
タプルは、Pythonにおける不変なデータ型です。リストに似ていますが、要素を変更できない点が異なります。これにより、データの一貫性を保ちたい場合や、変更を避けるべきデータを扱うときに便利です。
タプルの特徴
-
不変(イミュータブル)
一度作成されたら、要素を変更・追加・削除することができません。 -
順序付き
要素にはインデックスがあり、順序を保持します。 -
重複を許容
同じ値を複数回持つことができます。 -
高速
リストに比べて、メモリの効率が良く、操作が高速です。
タプルの例
# タプルの定義
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における集合を表すデータ型で、重複しない要素の集まりを管理します。数学の集合と同様、重複する要素を許さない特性を持ちます。
セットの特徴:
-
無順序
要素に順序がなく、インデックスでアクセスできません。 -
重複を許さない
同じ要素を2回以上持つことはできません。 -
集合演算
和(|)、積(&)、差(-)、対称差(^)などの集合演算が可能です。
セットの例
# セットの定義
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}
セットの使い方
-
重複を排除
リストやタプルの中に重複する要素がある場合、それをセットに変換して重複を排除できます。 -
集合演算
集合同士の比較や操作を行うとき、数学的な集合演算を使って簡単に処理できます。 -
要素の所属確認が高速
セットは要素の検索が高速です(ハッシュテーブルを使用しているため)。
タプルとセットの違い
まとめ
-
タプルは、変更されることがないデータを扱う際に使い、順序を持ち、重複を許容します。
-
セットは、重複を排除し、集合演算を行いたい場合に使います。順序はなく、要素の追加や削除が可能です。
コメント