集合天生去重,另外集合非常便于两组数字的取交集,并集等计算
1 # coding=utf-8 2 # Author: RyAn Bi 3 list_1 =[1,2,3,4,5,6,7] 4 list_1 =set(list_1) #定义为集合,集合处理重复的数据比较有优势 5 list_2= set([2,6,0,55,23,77,7]) 6 print(list_1,type(list_1)) 7 8 print(list_1.intersection(list_2)) #取交集 9 print(list_1.union(list_2)) #取并集 10 print(list_1.difference(list_2)) #取差集,在集合1但是不在集合2中 11 print(list_1.symmetric_difference(list_2)) # 取反向差集,把重复的去掉 12 13 list_3 = set([1,2,3]) 14 print(list_1.issubset(list_2)) #list1是list2的子集么? 15 print(list_1.issuperset(list_2)) #list1是list2的父集么? 16 print(list_3.issubset(list_1)) #list3是list31的子集么? 17 18 list_4 = set([4,6,7]) 19 print(list_3.isdisjoint(list_4)) #没有交集的话为true 20 21 print(list_1 & list_2) #交集,用运算符方式表示 22 print(list_1 | list_2) #并集,用运算符方式表示 23 print(list_1 - list_2) #差集,在1中不在2用运算符方式表示 24 print(list_1 ^ list_2) #对称差集,不会同时出现在两者中,用运算符方式表示 25 26 #---------------- 27 28 list_1.add(999) #添加一项 29 list_1.update([888,999,777]) #添加多项 30 list_1.remove('1') #删除1,不可能有2个1,集合天生去重,没有1会报错 31 list_1.discard('1') #删除1,如果没有1,不会报错 32 33 x in s #测试x是不是s的子集 34 x not in s #测试x不是s的自己 35 36 print(list_1.pop()) #随机删除一个