Module 02 · Python Data StructuresPython 数据结构
SetsPython 集合
在 Python 中,集合(Sets) 是一种集合类型(Collection),类似于列表(Lists)和元组(Tuples),可以存储不同的数据类型。但与列表和元组不同,集合具有以下特点:
✅ 无序(Unordered):集合中的元素没有固定的位置。
✅ 唯一(Unique):集合中不允许有重复元素。
定义集合
集合使用花括号 {} 来定义,元素放在花括号内。
示例:
music_set = {"AC/DC", "Pink Floyd", "Queen", "AC/DC"}
print(music_set)
📌 注意:虽然 "AC/DC" 出现了两次,但集合最终只包含一个 "AC/DC",因为集合不允许重复元素。
列表转换为集合(类型转换 - Type Casting)
可以使用 set() 函数将列表转换为集合:
music_list = ["AC/DC", "Pink Floyd", "Queen", "AC/DC"]
music_set = set(music_list)
print(music_set)
📌 这样可以自动去除重复元素!
集合操作
Python 提供了多种集合操作,下面我们来详细讲解。
1 添加元素
可以使用 .add() 方法向集合中添加新元素:
music_set.add("NSYNC")
print(music_set)
📌 如果尝试添加重复元素,集合不会发生变化!
2 删除元素
可以使用 .remove() 方法删除集合中的某个元素:
music_set.remove("NSYNC")
print(music_set)
📌 如果元素不存在,会报错。
3 检查元素是否存在
可以使用 in 关键字来检查某个元素是否在集合中:
print("AC/DC" in music_set) # 返回 True
print("The Who" in music_set) # 返回 False
数学集合运算(Set Operations)
Python 提供了许多数学集合运算,可以方便地进行交集、并集、子集等操作。
1 交集(Intersection)
交集是两个集合共有的元素,在 Venn 图中表示为重叠部分。
在 Python 中,我们使用 & 符号计算交集:
album_set_1 = {"AC/DC", "Back in Black", "Pink Floyd"}
album_set_2 = {"Back in Black", "The Beatles", "AC/DC"}
album_set_3 = album_set_1 & album_set_2
print(album_set_3) # 输出 {'AC/DC', 'Back in Black'}
📌 结果包含 AC/DC 和 Back in Black,因为它们同时出现在 album_set_1 和 album_set_2 中。
2 并集(Union)
并集是两个集合所有元素的集合。
在 Python 中,我们使用 | 符号计算并集:
album_set_3 = album_set_1 | album_set_2
print(album_set_3)
📌 结果包含 album_set_1 和 album_set_2 的所有元素,去重后合并。
3 子集(Subset)
如果一个集合的所有元素都包含在另一个集合中,则称其为子集。
我们可以使用 .issubset() 方法检查:
album_set_3 = {"AC/DC", "Back in Black"}
print(album_set_3.issubset(album_set_1)) # 返回 True
📌 因为 album_set_3 的所有元素都在 album_set_1 中,所以它是 album_set_1 的子集。
更多内容
Python 集合提供了丰富的操作,快去实验(Labs)中尝试更多示例吧! 🎼