①①python集合的使用
list_1 = [1,2,2,3,4,5,6,7,9,8] list_1 = set(list_1 ) #set去重复 print(list_1,type(list_1 )) #结果:{1, 2, 3, 4, 5, 6, 7, 8, 9} <class 'set'> list_2 = set([0,2,22,66,33,6,8,22]) #直接set去重复 #list_2 = set(list_2 ) print(list_2,type(list_2 )) #结果:{0, 33, 2, 66, 6, 8, 22} <class 'set'> print(list_1.intersection(list_2 )) #intersection交集:两个列表都存在的值 print(list_1 & list_2) #'&'求交集,不分前后;同上 #结果:{8, 2, 6} #结果:{8, 2, 6} print(list_1.union(list_2)) #union并集:合并两个列表并去掉重复的值 print(list_1 | list_2) #'|'求并集,不分前后;同上 #结果:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 33, 66, 22} #结果:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 33, 66, 22} print(list_1.difference(list_2)) #difference差集:1列表中去掉和2列表共有的值 print(list_1 - list_2) #'-'求差集,分先后;同上,在1中没有2的值 #结果:{1, 3, 4, 5, 7, 9} #结果:{1, 3, 4, 5, 7, 9} print(list_2.difference(list_1)) print(list_2 - list_1) #结果:{0, 33, 66, 22} #结果:{0, 33, 66, 22} list_3 = set([1,3,6]) print(list_3.issubset(list_1)) #判断1列表是否为2列表的子集 print(list_3 <= list_1 ) #同上 #结果:True #结果:True print(list_1 .issuperset(list_3)) #判断1列表是否为2列表的父集 print(list_1 >= list_3 ) #同上 #结果:True #结果:True print(list_1.symmetric_difference(list_2)) #symmetric对称,对称差集:1,2列表合并,去掉双方都有的值 print(list_1 ^ list_2 ) #对称差集;同上 #结果:{0, 1, 66, 3, 4, 5, 7, 9, 22, 33} #结果:{0, 1, 66, 3, 4, 5, 7, 9, 22, 33} list_4 = [5,7,9] print(list_3.isdisjoint(list_4)) #disjoint互斥,没有交集 #结果:True list_5 = set([11,22,33,44]) list_5.add(55) #add添加一个值 list_5.update([66,77,88,99]) #update添加多个值 list_5.remove(100) #remove删除一个值,该值不存在时报错KeyError: 100 list_5 .pop() #pop()随机删除一个值 print(list_5.discard(100)) #discard删除不存在该值的不会报错,print返回None print((11) in list_5) #in判断该值是否是在列表中 print((11) not in list_5) #not in判断该值是否是在列表中 print(list_5 )