首页 › 论坛 › 置顶 › Python中的集合及集合运算
正在查看 1 个帖子:1-1 (共 1 个帖子)
-
作者帖子
-
2025-07-18 11:33 #25152Q QPY课程团队管理员
今天我们将深入探讨一种独特而强大的Python数据结构:集合。
当你想要存储唯一项、去除重复项或执行数学操作(如并集、交集和差集)时,集合非常有用。
让我们来探索集合是如何工作的,以及它们的使用场景! 🐍
📦 你将学到什么
- 集合是什么以及如何创建它们
- 集合与列表和元组的区别
- 内置集合方法
- 集合操作:并集、交集、差集、对称差集
- 实际应用案例
🔹 1. 什么是集合?
集合是一种无序、可变且无索引的集合,不允许重复值。
🔹 语法:
my_set = {1, 2, 3}
您还可以使用
set()
构造函数创建一个空集合:empty_set = set()
⚠️
{}
创建的是一个空字典,而不是一个集合!
✅ 2. 为什么使用集合?
- 自动去除重复项
- 非常适合成员测试(
in
) - 在数学运算中效率极高
- 理想用于比较值的集合
🔧 3. 基本集合操作
创建一个集合
fruits = {"apple", "banana", "cherry"}
添加项目
fruits.add("orange")
移除项目
fruits.remove("banana") # 如果未找到则引发错误
清除所有项目
fruits.clear()
复制一个集合
new_set = fruits.copy()
🔁 4. 设置循环
for fruit in fruits: print(fruit)
注意:由于集合是无序的,输出可能不遵循插入顺序。
🔀 5. 集合操作
让我们来看两个集合:
a = {1, 2, 3, 4} b = {3, 4, 5, 6}
🔸 并集 – 所有唯一项
print(a | b) # {1, 2, 3, 4, 5, 6} print(a.union(b)) # 相同的结果
🔸 交集 – 公共项
print(a & b) # {3, 4} print(a.intersection(b)) # 相同的结果
🔸
差异 – 在 A 中但不在 B 中的项print(a - b) # {1, 2} print(a.difference(b)) # 相同的结果
🔸 对称差异 – 在 A 或 B 中,但不在两者中
print(a ^ b) # {1, 2, 5, 6} print(a.symmetric_difference(b)) # 相同
🔎 6. 成员测试
print(3 in a) # True print(10 in a) # False
在集合中,这比在列表中更快!
⚠️ 7. 集合与其他集合的比较
特性 列表 元组 集合 有序 ✅ ✅ ❌ 可变性 ✅ ❌ ✅ 允许重复 ✅ ✅ ❌ 可索引 ✅ ✅ ❌ 快速成员查找 ❌ ❌ ✅
🧪 现实世界示例
1. 从列表中移除重复项
nums = [1, 2, 2, 3, 4, 4, 5] unique_nums = list(set(nums)) print(unique_nums) # [1, 2, 3, 4, 5]
2. 检查共同兴趣
alice_hobbies = {"reading", "coding", "traveling"} bob_hobbies = {"coding", "gaming"}
3. 句子中的唯一单词
sentence = "this is a test this is only a test"
🧠 回顾
今天你学到了:
- 集合是什么以及如何创建和修改集合
- 集合会去除重复项并加速成员测试
- 集合操作:并集、交集、差集等
- 使用集合进行清理和比较的实际案例
-
作者帖子
正在查看 1 个帖子:1-1 (共 1 个帖子)
- 哎呀,回复话题必需登录。