Pythonの関数説明 frozenset()

frozenset() は、Pythonの組み込み関数の1つで、イミュータブル(変更不可)なフローズンセット(凍結集合)を生成するために使用されます。フローズンセットは、セット(集合)と似ていますが、変更不可であり、ハッシュ可能な要素のコレクションです。セットはミュータブル(変更可能)であるため、キーとして使用できず、辞書のキーとして利用できませんが、フローズンセットはそのような制約を受けません。

frozenset() 関数の基本的な構文は以下の通りです:

python
frozen_set = frozenset(iterable)
  • iterable: フローズンセットに含める要素のイテラブル(リスト、タプル、セットなど)。

以下は
frozenset() 関数の例です:

python
my_set = {1, 2, 3}
frozen = frozenset(my_set)

# フローズンセットは変更不可であるため、要素の追加や削除ができない
# frozen.add(4)  # エラー: 'frozenset' object has no attribute 'add'

# フローズンセットはハッシュ可能で、辞書のキーとして利用できる
my_dict = {frozen: "Hello"}
print(my_dict)  # 出力: {frozenset({1, 2, 3}): 'Hello'}

この例では、セット
my_set をフローズンセットに変換しています。フローズンセットは変更不可であるため、要素の追加や削除ができませんが、ハッシュ可能であるため、辞書のキーとして利用できます。

frozenset() 関数の主な特徴と注意点:

  • イミュータブル: フローズンセットは変更不可であるため、一度生成されたセットの内容を変更することはできません。そのため、フローズンセットは辞書のキーとして使用できます。

  • ハッシュ可能: フローズンセットはハッシュ可能であり、辞書のキーとして使用できます。ハッシュ値はセットの内容に基づいて計算されます。

  • 集合演算: フローズンセットはセットと同様に、集合演算(和集合、積集合、差集合など)をサポートしますが、結果は新しいフローズンセットとして返されます。

フローズンセットは、データの不変性を保持しながらセットと同様の操作を行いたい場合に便利です。また、辞書のキーとして使用することで、セットの内容をキーとしてデータを格納する際に役立ちます。