Python 的内置函数 frozenset
Python 的内置函数 不可变性: 支持集合操作: 字典键:当需要使用集合作为字典的键时, 集合元素:当集合的元素需要是另一个集合时,必须使用 frozenset 用于创建一个不可变的集合对象。与普通集合 set 不同,frozenset 一旦创建就不能修改(如添加或删除元素),这使得它可以作为字典的键或其他集合的元素。基本用法
fs = frozenset([1, 2, 3, 4])
print(fs) # 输出: frozenset({1, 2, 3, 4})特性
frozenset 的内容在创建后无法更改,因此它是哈希的,可以作为字典的键。d = {frozenset([1, 2]): "value"}
print(d) # 输出: {frozenset({1, 2}): 'value'}frozenset 支持常见的集合操作,如并集(union)、交集(intersection)、差集(difference)等。fs1 = frozenset([1, 2, 3])
fs2 = frozenset([3, 4, 5])
print(fs1.union(fs2)) # 输出: frozenset({1, 2, 3, 4, 5})frozenset 在某些操作上比可变集合更高效,尤其是在哈希和比较时。应用场景
frozenset 是唯一选择。groups = {
frozenset(["admin", "editor"]): "high_privilege",
frozenset(["viewer"]): "low_privilege"
}frozenset。s = {frozenset([1, 2]), frozenset([3, 4])}注意事项
示例
# 去重示例
fs = frozenset([1, 2, 2, 3])
print(fs) # 输出: frozenset({1, 2, 3})
# 错误示例(尝试修改会报错)
fs.add(4) # 抛出 AttributeError: 'frozenset' object has no attribute 'add'frozenset 提供了一种安全、高效的方式来处理不可变集合需求,特别适用于需要哈希或不可变性的场景。