Python 的内置函数 frozenset 用于创建一个不可变的集合对象。与普通的 set 不同,frozenset 是不可变的(immutable),这意味着一旦创建就不能修改其内容(不能添加、删除或更改元素)。这种特性使得 frozenset 可以作为字典的键或另一个集合的元素,而普通的 set 则不能。
语法
frozenset([iterable])
特性
示例
创建 frozenset
# 从列表创建
fs1 = frozenset([1, 2, 3, 4])
print(fs1) # 输出: frozenset({1, 2, 3, 4})
# 从字符串创建
fs2 = frozenset("hello")
print(fs2) # 输出: frozenset({'h', 'e', 'l', 'o'})
# 空 frozenset
fs3 = frozenset()
print(fs3) # 输出: frozenset()
作为字典的键
# 使用 frozenset 作为字典的键
dict_example = {
frozenset([1, 2, 3]): "value1",
frozenset(["a", "b"]): "value2"
}
print(dict_example) # 输出: {frozenset({1, 2, 3}): 'value1', frozenset({'a', 'b'}): 'value2'}
集合操作
fs_a = frozenset([1, 2, 3])
fs_b = frozenset([3, 4, 5])
# 并集
print(fs_a | fs_b) # 输出: frozenset({1, 2, 3, 4, 5})
# 交集
print(fs_a & fs_b) # 输出: frozenset({3})
# 差集
print(fs_a - fs_b) # 输出: frozenset({1, 2})
# 对称差集
print(fs_a ^ fs_b) # 输出: frozenset({1, 2, 4, 5})
应用场景
注意事项
通过 frozenset,Python 提供了一种安全、高效的方式处理不可变集合需求。