创建两个集合用于测试,创建集合可以用两种方式,{}或者set,但是不能用{}创建空集合,因为s={}表示创建一个空字典
s1 = {}
print(type(s1))
s2 = set()
print(type(s2))
s3 = {1,2,3}
print(type(s3))
# <class 'dict'>
# <class 'set'>
# <class 'set'>
1.集合的并 union
set1.union(set2, set3…)
返回值:返回一个新集合
s1 = {1,2,3,4}
s2 = {2,3,4,4,6}
s3 = {7,8}
print(s2)
print(s1.union(s2, s3))
# {2, 3, 4, 6}
# {1, 2, 3, 4, 6,7,8}
集合是无序的不重复元素序列,重复元素会被自动去掉
2.集合的交 intersection
set1.intersection(set2, set3 …)
返回值:返回一个新集合
s1 = {1,2,3,4}
s2 = {2,3,4,4,6}
s3 = {7,8}
print(s1.intersection(s2, s3))
print(s1.intersection(s2))
# set()
# {2, 3, 4}
set1.intersection_update(set2,set3)
返回值:没有返回值,在原始的集合上移除不重叠的元素
s1 = {1,2,3,4}
s2 = {2,3,4,4,6}
s3 = {7,8}
print(s1.intersection_update(s2))
s1.intersection_update(s2)
print(s1)
# None
# {2, 3, 4}
3.集合的差 difference
set1.difference(set2, set3 …)
返回值:返回一个新集合
s1 = {1,2,3,4}
s2 = {4,6,8}
s3 = {2,7,8}
print(s1.difference(s2,s3))
# {1, 3}
set1.difference_update(set2,set3)
返回值:没有返回值,在原始的集合上移除不重叠的元素
s1 = {1,2,3,4}
s2 = {4,6,8}
s3 = {2,7,8}
print(s1.difference_update(s2,s3))
s1.difference_update(s2,s3)
print(s1)
# None
# {1, 3}
集合还有两个常用的方法:
set1.isdisjoint(set2)
判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
s1 = {1,2,3,4}
s2 = {4,6,8}
s3 = {5,7,8}
print(s1.isdisjoint(s2))
print(s1.isdisjoint(s3))
# False
# True
set1.issubset(set2)
判断set1是否是set2的子集,是则返回true,否则返回false
s1 = {1,2}
s2 = {1,2,3,4}
print(s1.issubset(s2))
print(s2.issubset(s1))
# True
# False
或者直接使用逻辑运算符,更简单:
ls1 = {1, 2, 3, 4, 5}
ls2 = {3, 4, 5, 6}
print("集合并集:", ls1 | ls2)
print("集合交集:", ls1 & ls2)
print("集合1-交集", ls1 - ls2)
print("集合交叉集", ls1 ^ ls2)
输出为:
集合并集: {1, 2, 3, 4, 5, 6}
集合交集: {3, 4, 5}
集合1-交集 {1, 2}
集合交叉集 {1, 2, 6}