一、Pythonset合并简介
Python的set是一种无序不重复元素集,合并即将两个set中的元素合并成一个新的set,去掉重复元素。
set合并使用union()方法,也可以使用“|”运算。
二、Pythonset合并的基本用法
使用union()方法将两个set合并,并去重。
set1 = {1, 2, 3} set2 = {3, 4, 5} set3 = set1.union(set2) print(set3) # {1, 2, 3, 4, 5}
使用“|”运算也可以将两个set合并,并去重。
set1 = {1, 2, 3} set2 = {3, 4, 5} set3 = set1 | set2 print(set3) # {1, 2, 3, 4, 5}
三、Pythonset合并的高级应用
1、set合并最大公约数
可以使用set合并方法求最大公约数。
def gcd(x, y): if x == y: return x elif x > y: return gcd(x-y, y) else: return gcd(x, y-x) set1 = {2, 4, 6, 8} set2 = {3, 6, 9, 12} gcd_num = gcd(max(set1), max(set2)) set3 = set1.union(set2) print(gcd_num in set3) # True
2、set合并求有交集元素
可以使用set合并方法求两个set是否存在交集。
set1 = {1, 2, 3} set2 = {3, 4, 5} set3 = set1.union(set2) if len(set1) + len(set2) > len(set3): print("存在交集") else: print("不存在交集")
3、set合并去除重复元素并保持顺序
可以使用set合并方法去除重复元素,并保持顺序不变。
from collections import OrderedDict list1 = [1, 2, 3, 3, 4, 5, 6, 7, 7, 8] list2 = [1, 9, 2, 10, 3, 4, 5, 6] set1 = set(list1) set2 = set(list2) set3 = set1.union(set2) list3 = list(OrderedDict.fromkeys(set3)) print(list3) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
四、Pythonset合并的注意事项
使用set合并方法时需要注意:
1、set中的元素必须是可hash的,因为set是基于hash表实现的。所以也就不能够使用list、set、dict等不可hash类型作为元素。
2、set合并后顺序不可预测,因为set是无序集合。
五、小结
通过本文的学习,我们了解到了Pythonset合并方法的基本用法和高级应用,并且注意到了使用这个方法时的一些注意事项。
原创文章,作者:CSQEO,如若转载,请注明出处:https://www.506064.com/n/366247.html