Python 内置函数:frozenset()
frozenset() 是 Python 内置的不可变集合类型构造函数。它与 set 类似,但一旦创建,其元素就不能被添加、删除或修改,因此可以作为字典的键或其他集合的元素。
一、函数语法
frozenset([iterable])
参数:
iterable:可选。任何可迭代对象(如列表、元组、集合、字符串等)。如果省略,则返回一个空的 frozenset。
返回值:
返回一个新的不可变集合对象 frozenset。
二、基础用法示例
1、创建空的 frozenset
fs = frozenset() print(fs) # frozenset()
2、由列表创建
fs = frozenset([1, 2, 3, 3, 2, 4])
print(fs) # frozenset({1, 2, 3, 4})
3、由字符串创建
fs = frozenset("hello")
print(fs) # frozenset({'l', 'o', 'h', 'e'})
4、由集合创建
fs = frozenset({10, 20, 30})
print(fs) # frozenset({10, 20, 30})
三、frozenset 对象特点
1、不可变性
frozenset 是不可变的(immutable),创建后不能修改,因此是可哈希的(hashable)。
而 set 是可变的(mutable),支持添加、删除、修改元素。
2、自动去重
与 set 一样,不会存储重复元素。
3、无序性
与 set 一样,不保证元素顺序。
4、frozenset 可以作为字典的键或其他集合的元素,而 set 不可以。
fs = frozenset([1, 2])
s = set([1, 2, 3, 4, 5])
d = {fs: "ok"}
print(d) # frozenset 可作为键 {frozenset({1, 2}): 'ok'}
dd = {s: "error"} # 报错
四、 与 set 的区别
1、set 是可变的(mutable),支持添加、删除、修改元素。
2、frozenset 是不可变的(immutable),创建后不能修改。
3、frozenset 可以作为字典的键或其他集合的元素,而 set 不可以。
4、创建 frozenset 的时间复杂度与 set 相同,取决于输入数据的长度。
5、常用于需要固定集合内容且需要集合可作为字典键的场景。
6、在多线程或需要数据安全的情况下,可以用 frozenset 替代 set,防止被意外修改。

浙公网安备 33010602011771号