Coursera 笔记

Module 02 · Python Data StructuresPython 数据结构

SetsPython 集合

Coursera ↗

在 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)中尝试更多示例吧! 🎼