代码改变世界

Python集合set

2018-04-13 17:43  钱先生  阅读(190)  评论(0编辑  收藏  举报

集合 set

  • 集合是无序的
  • 集合的值是唯一的

 求两个集合的关系:

 1 list1 = [1,4,5,7,3,6,7,9]
 2 list2 = set([2,6,0,66,22,8,4])
 3 list3 = set([1,3,7])
 4 list4 = set([5,6,8])
 5 
 6 
 7 
 8 # 给列表去重: 把列表变成集合, 重复的值也自然就被去掉了
 9 list1 = set(list1)
10 print(list1,type(list1))
11 
12 
13 # 取两个列表的交集
14 list2 = set([2,6,0,66,22,8,4])
15 print(list1.intersection(list2))
16 
17 
18 # 取两个列表的并集
19 print(list1.union(list2)) # 两个列表中重复的元素只显示一次
20 
21 
22 # 取两个列表的差集(把两个列表的并集去掉交集部分)
23 print(list1.symmetric_difference(list2))
24 
25 
26 # 取存在于列表1但不存在列表2的数据
27 print(list1.difference(list2))
28 
29 
30 # 判断一个列表是不是另一个列表的子集
31 print(list1.issubset(list2))
32 
33 
34 # 判断一个列表是不是另一个列表的父集
35 print(list1.issuperset(list2))
36 
37 
38 # 判断两个集合是否有交集
39 print(list3.isdisjoint(list4))
 1 # 交集 &
 2 print(list1&list2)
 3 
 4 
 5 # 并集 |
 6 print(list2 |  list1)
 7 
 8 
 9 # difference
10 print(list1-list2)  # in list1 but not in list2
11 
12 
13 # 对称差集 symmetric_difference  ^
14 print(list1 ^ list2)

 

 

集合的增删改查

 1 # 增  (添加一个)
 2 list1.add(999)
 3 
 4 # 改  (添加多个)
 5 list1.update([10,37,42])
 6 print(list1)
 7 
 8 # 删 (一次只能删掉一个), 若指定元素不存在,会报错
 9 list1.remove(10)
10 
11 
12 # 集体的长度
13 len(list1)
14 
15 
16 # 测试x是否是a的成员
17 x in a
18 
19 
20 # 测试x是否不是a的成员
21 x not in a
22 
23 
24 # 任意删除一个元素并返回被删除的元素
25 list.pop()
26 
27 
28 # 删除指定的元素,若指定的元素不存在不会报错
29 list1.discard(10)