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
的使用可以显著提高编程效率和代码质量。