Python集合(Set)是一种无序、不重复元素的数据结构,主要用于快速去重和数学集合运算。 其核心特性包括自动去重、高效成员检测(如in
操作)以及支持并集(|
)、交集(&
)、差集(-
)等数学运算,适合处理需要唯一性的数据场景。
-
创建与初始化
集合可通过大括号{}
或set()
函数创建,空集合必须用set()
({}
会创建空字典)。例如:python复制
unique_numbers = {1, 2, 3} # 直接创建 from_list = set([1, 2, 2]) # 列表转集合,输出{1, 2}
-
元素操作
- 添加:
add()
单个元素,update()
合并多个元素(如列表、其他集合)。 - 删除:
remove()
(元素不存在报错)或discard()
(安全删除),pop()
随机移除元素。 - 不可变集合:
frozenset()
创建的集合无法修改,适合作为字典键或嵌套集合元素。
- 添加:
-
集合运算
- 并集:
set1 | set2
或set1.union(set2)
。 - 交集:
set1 & set2
或set1.intersection(set2)
。 - 差集:
set1 - set2
(仅保留set1
独有元素)。 - 对称差集:
set1 ^ set2
(仅保留非共有元素)。
- 并集:
-
性能优势
集合基于哈希表实现,成员检测时间复杂度为,远快于列表的,适合高频查询场景。例如,快速过滤重复IP地址或统计独立用户数。 -
使用场景
- 数据去重:如清洗重复日志条目。
- 关系运算:如分析用户兴趣重叠(交集)。
- 缓存优化:用集合存储已处理ID,避免重复计算。
提示:集合虽高效,但无序性可能导致遍历顺序不稳定,需避免依赖元素位置。优先选择集合处理唯一性需求,复杂操作可结合列表推导式或生成器优化。