集合是一个无序的,不重复的数据组合,它的主要作用是:
1.去重,把列表变为集合就去重了。
2.关系测试,测试两组数据之前的差集,交集,并集等关系
#创建两个集合
list_1 = set([1,3,4,5,6,6,5,7,9])
list_2 = set([2,4,5,6,8,10])
print(list_1,list_2)
#输出:{1, 3, 4, 5, 6, 7, 9} {2, 4, 5, 6, 8, 10} #列表变为集合自动去重
#交集
print(list_1.intersection(list_2))
#输出:{4, 5, 6}
#并集
print(list_1.union(list_2))
#输出:{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#差集
print(list_1.difference(list_2)) #我有的,你没有的
#输出:{1, 3, 9, 7}
print(list_2.difference(list_1))
#输出:{8, 2, 10}
#子集
list_3 = set([1,3,5])
print(list_3.issubset(list_1)) #如果list_3是list_1的子集,返回Ture,否则返回False
#输出:Ture
print(list_1.issuperset(list_3)) #父集
#输出:Ture
#对称差集
print(list_1.symmetric_difference(list_2)) #去掉两个集合相交的
#输出:{1, 2, 3, 7, 8, 9, 10}
print(list_1.isdisjoint(list_2)) #如果两个集合有交集则返回False,没有交集则返回Ture
#关系测试另一种方式-------------------
#交集
print(list_1 & list_2)
#并集
print(list_1 | list_2)
#差集
print(list_1 - list_2)
#对称差集
print(list_1 ^ list_2)
#集合基本操作---------------------------
#增加
list_1.add(111) #添加一项
list_1.update([222,333,444]) #添加多项
print(list_1)
#删除
list_1.remove(111) #删除一值,不存在报错
list_1.pop() #任意删除一个
list_1.discard(333) #删除一个值,不存在不会报错
print(list_1)
# print(len(list_1)) #查看集合长度
# print(222 in list_1) #测试数据是否在集合中