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