集合是Python中用于去重和集合运算的无序容器,通过{}或set()定义,空集合需用set()创建。支持add、discard等操作,具备唯一性、无序性,常用于数据去重、高效成员检测及交并差等数学运算。

Python中的集合(set)是一种无序、不重复元素的容器类型。它主要用于去重和进行数学上的集合运算,比如交集、并集、差集等。定义一个集合很简单,可以通过花括号 {} 或者 set() 函数来实现。
集合的定义方式
使用花括号创建集合时,元素之间用逗号分隔。注意:空集合必须用 set() 创建,因为 {} 默认是字典类型。
- s = {1, 2, 3} # 正确:包含元素的集合
- empty_set = set() # 正确:空集合
- not_a_set = {} # 错误:这是空字典,不是集合
也可以通过 set() 将其他可迭代对象转换为集合,例如列表、字符串:
- set([1, 2, 2, 3]) # 结果:{1, 2, 3}
- set("hello") # 结果:{'h', 'e', 'l', 'o'}
集合的核心特性与操作
集合最大的特点是元素唯一且无序,这意味着每次遍历顺序可能不同,并且不能通过下标访问。
立即学习“Python免费学习笔记(深入)”;
- 自动去重:添加重复元素会被忽略
- 支持动态增删:可用 add() 和 remove() 方法
- 不可哈希:集合本身不能作为字典的键或嵌套在其他集合中
常用操作示例:
- s.add(4) # 添加元素
- s.discard(3) # 删除元素(若不存在也不报错)
- len(s) # 获取元素个数
集合的使用场景分析
集合在实际编程中非常实用,尤其适合处理需要高效查找和去重的问题。
1. 数据去重
当从日志、用户输入或数据库读取数据时,常伴随重复项。用集合可以快速清除重复内容。
2. 成员检测效率高
相比列表,集合的 in 操作平均时间复杂度为 O(1),更适合频繁查询的场景。
3. 数学集合运算
适用于比较两组数据的关系,如共同好友、差异项等。
- a & b # 交集
- a | b # 并集
- a - b # 差集
- a ^ b # 对称差集
基本上就这些。集合虽然简单,但在合适场景下能显著提升代码清晰度和性能。关键是理解它的无序性和唯一性特点,避免误用。










