编程笔记

编程笔记

Python教程:Python中集合函数Set的使用详解
2024-12-09

Python中的set:无序且不重复的元素集合

set是Python中一个非常重要的数据结构,它是一个无序且不包含重复元素的集合。set主要用于元素的快速检核、消除重复元素以及进行各种集合运算。以下是一些set的常用案例和操作方法:

1. 创建一个空的set

python复制代码# 创建一个空的sets = set()print(s)  # 输出:set()

2. 使用列表创建set

python复制代码# 使用列表创建sets = set([1, 2, 3, 4, 5])print(s)  # 输出:{1, 2, 3, 4, 5}

注意:set中的元素是无序的,因此输出的顺序可能与输入的顺序不同。

3. 添加元素

python复制代码# 添加元素到sets = set([1, 2, 3])s.add(4)print(s)  # 输出:{1, 2, 3, 4}

4. 删除元素

python复制代码

# 删除set中的元素

s = set([1, 2, 3])

s.remove(2)

print(s)  # 输出:{1, 3}



# 如果元素不存在,remove会引发KeyError。可以使用discard代替,它不会引发错误。

s.discard(4)  # 不会引发错误,即使4不在set中

5. 检查元素是否在其中

python复制代码# 检查元素是否在set中s = set([1, 2, 3])print(2 in s)  # 输出:True

6. 获取长度

python复制代码# 获取set的长度s = set([1, 2, 3])print(len(s))  # 输出:3

7. 获取并集

python复制代码# 获取两个set的并集s1 = set([1, 2, 3])s2 = set([2, 3, 4])print(s1 | s2)  # 输出:{1, 2, 3, 4}# 或者使用union方法print(s1.union(s2))  # 输出:{1, 2, 3, 4}

8. 获取两个set的交集

python复制代码# 获取两个set的交集s1 = set([1, 2, 3])s2 = set([2, 3, 4])print(s1 & s2)  # 输出:{2, 3}# 或者使用intersection方法print(s1.intersection(s2))  # 输出:{2, 3}

9. 获取两个set的差集

python复制代码# 获取两个set的差集s1 = set([1, 2, 3])s2 = set([2, 3, 4])print(s1 - s2)  # 输出:{1}# 或者使用difference方法print(s1.difference(s2))  # 输出:{1}

10. 获取两个set的对称差集

python复制代码# 获取两个set的对称差集s1 = set([1, 2, 3])s2 = set([2, 3, 4])print(s1 ^ s2)  # 输出:{1, 4}# 或者使用symmetric_difference方法print(s1.symmetric_difference(s2))  # 输出:{1, 4}

11. 重复元素过滤

python复制代码# 使用set来过滤列表中的重复元素original_list = [1, 2, 2, 3, 4, 4, 5]unique_list = list(set(original_list))print(unique_list)  # 输出可能为:[1, 2, 3, 4, 5],但顺序不保证

注意:转换为list后,顺序可能不再是原列表的顺序。

12. 统计多个集合的并集

python复制代码# 统计多个集合的并集s1 = {1, 2, 3}s2 = {3, 4, 5}s3 = {5, 6, 7}print(s1 | s2 | s3)  # 输出:{1, 2, 3, 4, 5, 6, 7}# 或者使用update方法逐个添加s = set()s.update(s1, s2, s3)print(s)  # 输出:{1, 2, 3, 4, 5, 6, 7}

通过这些案例,我们可以看到set在Python中的广泛应用,从基本的元素管理到复杂的数据处理和数学运算。掌握set的使用可以显著提高编程效率和代码质量。