集合(set)
集合主要有两种用处:
1.去除相同的元素
2.关系测试,两个列表中的元素的关系
按照‘alex’讲的自己写了源码笔记,下面就直接贴出来:
1 #!/usr/bin/env python
2 # -*- coding utf-8 -*-
3 # Author:qinjiaxi
4 '''集合有两种用处:
5 1.去同
6 2.关系测试'''
7 list_1 = [1, 2, 3, 5, 2, 5, 7]
8 list_1 = set(list_1)
9 list_2 = [1, 10, 2, 9, 8, 1]
10 list_2 = set(list_2)
11 #交集
12 print(list_1.intersection(list_2))
13 print(list_1 & list_2)
14 #并集
15 print(list_1.union(list_2))
16 print(list_1 | list_2)
17 #差集
18 print(list_1.difference(list_2))#返回list_1中有的list_2中没有的
19 print(list_1 - list_2)
20 #子集
21 print(list_1.issubset(list_2))#判断list_1是不是list_2的子集,返回布尔值
22 #父集
23 print(list_1.issuperset(list_2))#判断list_1是不是list_2的父集,返回布尔值
24 #对称差集
25 print(list_1.symmetric_difference(list_2))#把list_1和list_2里面都没有的取出来
26 print(list_1 ^ list_2)
27 #关系测试
28 print(list_1.isdisjoint(list_2))#如果两个没有重复元素返回True,否则为False
29
30
31 #添加(add)
32 list_1.add(999)#添加一项
33 list_1.update([11, 222, 223])#添加多项(用的少)
34 #删除(modifiy)
35 list_1.remove(999)#指定元素删除(元素不存在就报错)
36 list_1.pop()#随机删除并返回元素
37 list_1.discard(999)#指定元素删除(元素不存在不会报错,如果打印出来就返回None)
38
39 #集合长度
40 len(set)
41 #测试x是否在set中
42 # x in set
43 # x not in set