集合
特点:集合对象是一组无序排列的可哈希的值:集合成员可以做字典的键,与列表和元组不同,集合无法通过数字进行索引。此外,集合中的元素不能重复。
定义
1
2
3
|
set () - > new empty set object set (iterable) - > new set object s = { 0 } |
应用:去重
1
2
3
|
>>> lst1 = [ 1 , 1 , 2 , 2 , 3 , 4 , 2 ] >>> list ( set (lst1)) [ 1 , 2 , 3 , 4 ] |
常用操作
集合支持一系列标准操作,包括并集|、交集&、差集-和对称差集^
子集< <=及超集> >=
增删,清空操作
具体见如下代码例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
>>> lst1 = [ 1 , 2 ] >>> lst2 = [ 2 , 3 ] >>> a = set (lst1) #定义集合 >>> b = set (lst2) >>> a,b ({ 1 , 2 }, { 2 , 3 }) >>> a|b #取并集 { 1 , 2 , 3 } >>> a&b #取交集 { 2 } >>> a - b #取差集 { 1 } >>> b - a #取差集 { 3 } >>> list (a) #转换集合为列表,也可转为元组,如 tuple(a)返回 (1,2) [ 1 , 2 ] >>> a < b #子集判断 False >>> c = set ([ 1 ]) >>> c { 1 } >>> c < a #子集判断 True >>> c < = a #子集判断 True >>> d = set ([ 1 , 2 , 3 ]) >>> d > a #超集判断 True >>> >>> d > = a #超集判断 True >>> a,b ({ 1 , 2 }, { 2 , 3 }) >>> a^b # 对称差集 { 1 , 3 } >>> c { 1 } >>> d { 1 , 2 , 3 } >>> a^d # 对称差集 { 3 } >>> s = { 0 } >>> type (s) < class 'set' > >>> >>> print (s, len (s)) #集合长度 { 0 } 1 >>> s.add( '1' ) #添加元素 >>> s { 0 , '1' } >>> s.update([ 2 , 3 ]) #添加多个元素 >>> s { 0 , 2 , 3 , '1' } >>> s.remove( 2 ) #删除指定元素,如没有则报错 >>> s { 0 , 3 , '1' } >>> s.pop() #随便删元素(貌似没什么用) 0 >>> s { 3 , '1' } >>> s.discard( 3 ) #删除指定元素 >>> s { '1' } >>> s.clear() #清空集合 >>> s set () |