Python 集合类型有哪些
什么是集合类型
在 Python 中,集合是一种无序且不重复的数据类型。集合可以用来去除列表中的重复元素,也可以进行集合运算,如交集、并集等。Python 提供了两种集合类型:Set 和 FrozenSet。
Set
Set 是一种可变集合类型,采用哈希表实现。使用 set() 函数可以将列表或元组转化为集合。
下面是一个例子:
fruits = ['apple', 'orange', 'banana', 'apple']
unique_fruits = set(fruits)
print(unique_fruits)
输出结果为:{'orange', 'apple', 'banana'}
,可以看到重复的元素被自动去除了。
Set 支持的基本操作包括添加元素、删除元素、判断元素是否在集合中等。下面是一些常用的示例:
numbers = {1, 2, 3, 4}
numbers.add(5) # 添加元素
numbers.remove(3) # 删除元素
print(2 in numbers) # 判断元素是否在集合中
FrozenSet
FrozenSet 是一种不可变集合类型。相比于 Set,它没有添加元素和删除元素的方法,也不能修改已经存在的元素。但是它支持所有的集合运算,如交集、并集等。
下面是一个例子:
f_varieties = frozenset(['apple', 'orange', 'banana'])
s_varieties = frozenset(['orange', 'grapefruit'])
print(f_varieties | s_varieties)
输出结果为:frozenset({'grapefruit', 'apple', 'banana', 'orange'})
,可以看到两个集合的并集被正确地计算了。
集合推导式
与列表推导式类似,Python 也支持集合推导式,可以快速生成一个集合。下面是一个例子:
numbers = {i * i for i in range(1, 5)}
print(numbers)
输出结果为:{1, 4, 9, 16}
,可以看到我们成功地生成了一个包含 1 到 4 的平方的集合。
总结
Python 中集合是一种十分有用的数据类型,通过使用 Set 和 FrozenSet 可以快速去除列表中的重复元素或进行集合运算。同时,集合推导式也提供了一种方便的生成集合的方式。
香港cn2 vps