集合
集合(set)是 Python 中的无序、不重复元素集,支持数学上的集合运算。集合是可变的,但元素必须是不可变类型。
创建集合
集合操作
集合运算
1. 并集 (Union)
- 解释:并集包含所有出现在两个集合中的元素。
- 适用场景:适用于需要合并两个集合的场景。
2. 交集 (Intersection)
- 解释:交集包含同时出现在两个集合中的元素。
- 适用场景:适用于需要查找共同元素的场景。
3. 差集 (Difference)
- 解释:差集包含只出现在第一个集合中的元素。
- 适用场景:适用于需要排除某些元素的场景。
4. 对称差集 (Symmetric Difference)
- 解释:对称差集包含只出现在一个集合中的元素。
- 适用场景:适用于需要查找非共同元素的场景。
集合的性能特点
集合操作的时间复杂度:
| 操作 | 时间复杂度 |
|---|---|
添加 (add) | O(1) |
删除 (remove) | O(1) |
查找 (in) | O(1) |
| 并集/交集/差集 | O(len(s)) |
- 解释:集合基于哈希表实现,大多数操作是常数时间。
- 适用场景:适用于需要高效查找和去重的场景。
不可变集合 (frozenset)
frozenset 是不可变的集合,可以作为字典的键或另一个集合的元素。
- 解释:
frozenset适用于需要不可变集合的场景。 - 适用场景:适用于需要哈希集合的场景。
集合方法
不可变集合 (frozenset)
集合与函数
实践练习
练习1:查找共同好友
练习2:统计唯一单词
练习3:集合覆盖问题
小结
本章介绍了 Python 集合的核心知识:
- 创建集合:字面量、构造函数、推导式
- 集合操作:添加、删除、清空
- 集合运算:并集、交集、差集、对称差集
- 不可变集合:frozenset
- 集合应用:去重、成员测试、数学运算
集合是处理唯一性和集合运算的高效工具,适用于需要快速成员测试和数学运算的场景。