Python中的set
是一种高效存储唯一元素的无序集合,核心功能包括自动去重、快速成员检测以及支持集合运算(并集/交集/差集等)。其基于哈希表实现,操作时间复杂度为,特别适合处理需要唯一性或关系测试的场景。
-
自动去重
通过set()
转换列表可一键去除重复元素,例如list(set([1,2,2,3]))
直接得到[1,2,3]
。这一特性在数据清洗或日志分析中极为实用。 -
高效成员检测
使用in
操作符检查元素是否存在时,set
的速度远超列表。例如if x in my_set:
的查询效率恒定,不受数据量影响。 -
集合运算
支持数学上的并集(|
或union()
)、交集(&
或intersection()
)、差集(-
或difference()
)和对称差集(^
或symmetric_difference()
)。例如比较两篇文章词汇共性:common_words = set(article1) & set(article2)
。 -
动态修改
通过add()
/remove()
可增删元素,但需注意元素必须为不可变类型(如数字、字符串或元组)。若需不可变集合,可使用frozenset
。 -
应用场景扩展
除基础去重外,还可用于关系数据库的模拟查询、图算法中的节点管理,或快速实现布隆过滤器等高级数据结构。
合理使用set
能显著提升代码性能与可读性,但需注意其无序性可能导致遍历结果不稳定。对于需要顺序或索引的场景,应优先选择列表或元组。