集合操作

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

常用操作

 1 list1 = [1,3,5,6,7,8,0,3,2,5,6]
 2 
 3 list1 = set(list1)                     #创建一个数值集合
 4 print(list1)                           #输出{0, 1, 2, 3, 5, 6, 7, 8}
 5 
 6 list2 = set([3,7,66,55,2,4,9,22])
 7 print(list2)
 8 
 9 
10 #交集  & 和 intersection  用法
11 print(list1 & list2)
12 print(list2.intersection(list1))       #输出{2, 3, 7}
13 
14 #并集 | 和 union 用法
15 print(list1 | list2)
16 print(list2.union(list1))              #输出{0, 1, 2, 66, 3, 4, 5, 7, 6, 9, 8, 22, 55}
17 
18 #差集 - 和 difference 用法
19 print(list1 - list2)                   #输出{0, 1, 5, 6, 8} 在1里而不在2里,且去掉两者的交集
20 print(list2.difference(list1))         #输出{66, 4, 9, 22, 55}  在2里且不在1里,且去掉两者的交集
21 
22 #对称差集  ^ 和 symmetric_difference 用法
23 print(list1 ^ list2)                   #输出{0, 1, 66, 4, 5, 6, 9, 8, 22, 55}  两个去掉交集剩余的
24 print(list1.symmetric_difference(list2))
25 
26 #判断是否为子集
27 list3 = set([1,5,6,7,8])
28 print(list3.issubset(list1))           #输出True    判断3是否为1的子集
29 
30 #判断是否为父集
31 print(list1.issuperset(list3))         #输出True    判断1是否为3的父集
32 
33 #判断是否为不相交
34 list4 = set([2,3])
35 print(list3.isdisjoint(list4))         #输出True    判断两者是否有想同的元素,如果有,则输出False
36 
37 
38 #添加 add 和 update
39 list3.add(9)                           # 添加一项
40 print(list3)                           #输出{1, 5, 6, 7, 8, 9}
41 
42 list4.update([1, 11, 111])             # 在s中添加多项
43 print(list4)                           #输出{1, 2, 3, 11, 111}
44 
45 #删除 remove 和 pop
46 list3.remove(9)
47 print(list3)                           #输出{1, 5, 6, 7, 8}    使用remove()可以删除一项:
48 
49 list3.pop()
50 list3.pop()
51 print(list3)                           #输出{6, 7, 8}        随机删除一项

 

 posted on 2018-08-05 15:46  二十二a  阅读(107)  评论(0编辑  收藏  举报