Python集合(set)是一种高效存储唯一元素的无序容器,具有自动去重、哈希表快速查询(O(1)时间复杂度)和丰富集合运算(如并集、交集)三大核心优势,适用于数据去重、成员检测和数学运算等场景。
-
唯一性与无序性
集合中的元素必须唯一,重复值会被自动过滤。例如{1, 2, 2, 3}
会变为{1, 2, 3}
。元素存储顺序与添加顺序无关,因此不支持索引或切片操作。 -
可变性与元素限制
集合本身可动态修改(如add()
添加、remove()
删除),但元素必须是不可变类型(如整数、字符串、元组),列表或字典等可变类型会引发TypeError
。 -
高效操作与集合运算
基于哈希表实现,查询速度极快(O(1))。支持数学运算:|
(并集)、&
(交集)、-
(差集)、^
(对称差集),例如{1, 2} | {2, 3}
返回{1, 2, 3}
。 -
特殊方法与注意事项
- 空集合需用
set()
而非{}
(后者表示空字典)。 discard()
安全删除元素(不报错),pop()
随机移除元素。- 不可变集合需用
frozenset()
,适用于字典键或嵌套集合。
提示:优先选择集合处理去重或快速查找需求,但需注意其无序性不适合需要顺序的场景(如日志记录)。合理利用集合运算可简化代码并提升性能。