frozenset
是 Python 内置函数之一,用于将可迭代对象转换为不可变的集合类型(frozenset)。与普通的集合不同,不可变集合一旦创建就不能再被修改,也就是说,不能添加、删除或修改其中的元素。
函数语法
frozenset([iterable])
参数:
iterable
(可选):一个可迭代对象,可以是列表、元组、集合等。
示例代码
现在让我们通过示例代码来更详细地了解 frozenset
函数的使用:
示例 1:使用列表创建不可变集合
numbers = [1, 2, 3, 4, 4, 5, 5]
frozen_numbers = frozenset(numbers)
print(frozen_numbers)
运行结果:
frozenset({1, 2, 3, 4, 5})
示例 2:使用字符串创建不可变集合
text = "hello world"
frozen_text = frozenset(text)
print(frozen_text)
运行结果:
frozenset({'o', 'r', 'l', 'd', 'h', ' ', 'e', 'w'})
示例 3:使用元组创建不可变集合
coordinates = (3, 5)
frozen_coordinates = frozenset(coordinates)
print(frozen_coordinates)
运行结果:
frozenset({3, 5})
示例 4:使用集合创建不可变集合(去除重复项)
colors = {"red", "green", "blue", "red", "green"}
frozen_colors = frozenset(colors)
print(frozen_colors)
运行结果:
frozenset({'green', 'blue', 'red'})
示例 5:尝试修改不可变集合(会引发异常)
frozen_set = frozenset([1, 2, 3])
try:
frozen_set.add(4)
except AttributeError as e:
print(f"Error: {e}")
运行结果:
Error: 'frozenset' object has no attribute 'add'
总结
frozenset
函数用于将可迭代对象转换为不可变的集合类型。它的主要特点是一旦创建就不能再修改,因此适合在需要不可变性的情况下使用,例如作为字典的键值或其他需要哈希性质的场景。注意,由于不可变性,不可变集合没有添加、删除元素的方法,所以在创建后不能再对其进行修改。