Python 内建函数列表 > Python 的内置函数 set
Python 的内置函数 set() 是一个非常有用的数据结构,用于创建无序且不包含重复元素的集合。它提供了高效的成员检测和元素去重功能,是处理集合运算的理想选择。
创建集合:
# 使用花括号
fruits = {'apple', 'banana', 'orange'}
# 使用set()函数
numbers = set([1, 2, 3, 2, 1]) # 结果为{1, 2, 3}
空集合创建:
empty_set = set() # 注意:不能使用{},这会创建字典
无序性:集合中的元素没有固定顺序
唯一性:自动去除重复元素
可变性:可以添加/删除元素
可迭代性:可以使用for循环遍历
添加元素:
s = {1, 2}
s.add(3) # {1, 2, 3}
s.update([4, 5]) # {1, 2, 3, 4, 5}
删除元素:
s.remove(2) # 如果元素不存在会报错
s.discard(2) # 元素不存在不会报错
s.pop() # 随机删除并返回一个元素
集合运算:
a = {1, 2, 3}
b = {2, 3, 4}
# 并集
a.union(b) # {1, 2, 3, 4}
# 交集
a.intersection(b) # {2, 3}
# 差集
a.difference(b) # {1}
# 对称差集
a.symmetric_difference(b) # {1, 4}
数据去重:
lst = [1, 2, 2, 3, 3, 3]
unique = set(lst) # {1, 2, 3}
快速成员检测:
if user_input in valid_options:
# 比列表检测更高效
关系运算:
# 检查两个用户的好友列表是否有交集
common_friends = user1_friends & user2_friends
集合只能包含可哈希(不可变)对象
不能通过索引访问元素
冻结集合(frozenset)是集合的不可变版本
集合在Python 3.7+中会保留插入顺序,但不应该依赖这个特性
集合是Python中处理唯一值集合的高效工具,合理使用可以显著提升代码性能和简洁性。Python 的内置函数 set