Python - 集合练习
大家好,未来的Python巫师们!今天,我们将深入探讨神奇的Python集合世界。如果你以前从未编写过代码,也不要担心——我将作为你友好的向导,带你开启这段激动人心的旅程。在本教程结束时,你将能够像专业人士一样熟练地使用集合!
什么是集合?
在我们开始练习之前,先快速了解一下Python中的集合是什么。想象你有一袋弹珠,但每个弹珠在袋子中只能出现一次。本质上,Python中的集合就是这样的——一组唯一的元素。
集合是无序的,这意味着元素没有特定的位置。它们也是可变的,因此我们可以添加或删除元素。但是,元素本身必须是不可变的(如数字或字符串,而不是列表)。
现在,让我们卷起袖子开始编码吧!
Python集合练习1:创建和操作集合
创建一个集合
首先,我们创建一个简单的集合:
fruits = {"苹果", "香蕉", "樱桃"}
print(fruits)
运行这段代码后,你会看到:
{'樱桃', '香蕉', '苹果'}
注意到输出的顺序与我们输入的不同吗?这是因为集合是无序的!
向集合中添加元素
现在,让我们向集合中添加更多水果:
fruits.add("火龙果")
print(fruits)
fruits.update(["接骨木", "无花果"])
print(fruits)
输出:
{'樱桃', '香蕉', '苹果', '火龙果'}
{'无花果', '樱桃', '香蕉', '接骨木', '苹果', '火龙果'}
看到我们是如何使用add()
添加单个元素,而使用update()
添加多个元素的吗?这就像往你的袋子里放一个弹珠和倒一把弹珠的区别!
从集合中移除元素
让我们移除一些水果:
fruits.remove("香蕉")
print(fruits)
fruits.discard("葡萄") # 即使"葡萄"不在集合中,这也不会引发错误
print(fruits)
输出:
{'无花果', '樱桃', '接骨木', '苹果', '火龙果'}
{'无花果', '樱桃', '接骨木', '苹果', '火龙果'}
remove()
如果元素不存在将会引发错误,而discard()
则不会。这就像小心翼翼地从袋子里挑选一个特定的弹珠,而不是随便找一个来移除。
Python集合练习2:集合操作
现在我们已经掌握了基础知识,让我们来玩多个集合!
集合并集
想象你和你的朋友都有弹珠袋。并集是你们在一起拥有的所有独特的弹珠。
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
union_set = set1.union(set2)
print(union_set)
输出:
{1, 2, 3, 4, 5, 6, 7, 8}
集合交集
交集是你们共同拥有的弹珠。
intersection_set = set1.intersection(set2)
print(intersection_set)
输出:
{4, 5}
集合差集
差集是你有你朋友没有的弹珠。
difference_set = set1.difference(set2)
print(difference_set)
输出:
{1, 2, 3}
Python集合练习3:高级集合操作
准备好了吗?让我们来挑战一些更高级的操作!
对称差集
这将给出所有在任一集合中但不在两个集合中都有的弹珠。
symmetric_difference = set1.symmetric_difference(set2)
print(symmetric_difference)
输出:
{1, 2, 3, 6, 7, 8}
子集和超集
让我们检查一个集合是否包含在另一个集合中:
set3 = {1, 2, 3}
print(set3.issubset(set1)) # set3是set1的子集吗?
print(set1.issuperset(set3)) # set1是set3的超集吗?
输出:
True
True
这就像检查你的所有弹珠是否也在你朋友更大的收藏中!
冻结集合
有时,我们需要一个不能更改的集合。这时候可以使用冻结集合:
frozen_fruits = frozenset(["苹果", "香蕉", "樱桃"])
print(frozen_fruits)
# 这将引发错误:
# frozen_fruits.add("火龙果")
输出:
frozenset({'樱桃', '香蕉', '苹果'})
将冻结集合想象成密封在冰中的弹珠袋——你可以看,但不能触摸!
集合方法总结
以下是我们学到的集合方法的有用表格:
方法 | 描述 |
---|---|
add() | 向集合中添加一个元素 |
update() | 用另一个集合或可迭代对象的元素更新集合 |
remove() | 移除指定的元素(如果找不到则引发错误) |
discard() | 移除指定的元素(如果找不到则不引发错误) |
union() | 返回包含集合的并集的集合 |
intersection() | 返回包含集合的交集的集合 |
difference() | 返回包含集合差集的集合 |
symmetric_difference() | 返回包含两个集合中不重叠的元素的集合 |
issubset() | 检查一个集合是否是另一个集合的子集 |
issuperset() | 检查一个集合是否是另一个集合的超集 |
就是这些了,各位!你刚刚通过集合提升了你的Python技能。记住,熟能生巧,所以继续练习这些概念。在你意识到之前,你将能够像一个真正的Python巫师一样操纵集合!
Credits: Image by storyset