set集合

简介:

不允许重复的元素出现

无序排列

可哈希


set的底层代码是用字典来实现的?

相当于一个特殊的list

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
In [ 5 ]: s1  =  set ()
 
In [ 6 ]:  type (s1)
Out[ 6 ]:  set
 
In [ 7 ]: s1.add( "inter" )
 
In [ 8 ]: s1.add( "inter" )
 
In [ 9 ]: s1           #添加了2个inter,但是只有一个添加进了集合。
Out[ 9 ]: { 'inter' }
 
In [ 10 ]: s1.add( "ac" )
 
In [ 11 ]: s1
Out[ 11 ]: { 'ac' 'inter' }
 
 
In [ 19 ]: l1  =  [ 1 , 2 , 3 , 4 , 5 , 2 ]
 
In [ 20 ]: s2  =  set (l1)    #接受一个列表,转换为集合。
 
In [ 21 ]: s2
Out[ 21 ]: { 1 2 3 4 5 }
 
In [ 45 ]: s3
Out[ 45 ]: { 2 'ac' 'china' 'inter' }
 
#输出一个集合,内容是s3里面的,不同于s2的元素。s3本身不改变
In [ 42 ]: s3.difference(s2)   
Out[ 42 ]: { 'ac' 'china' 'inter' }
 
#不输出任何信息,s3本身发生了改变。
In [ 48 ]: s3.difference_update(s2)
 
In [ 49 ]: s3           #就是去除了s2中的元素
Out[ 49 ]: { 'ac' 'china' 'inter' }
 
#返回2个集合的交集,集合本身不改变
In [ 56 ]: s1.intersection(s3)
Out[ 56 ]: { 'ac' 'china' 'inter' }
 
#修改s1为2个集合的交集,不返回任何东西
In [ 59 ]: s1.intersection_update(s3)
 
#返回2个集合的差集(就是2个集合不相同的元素)
In [ 83 ]: s1.symmetric_difference(s3)
Out[ 83 ]: { 'ac' 'inter' }
 
#2个集合没有交集,返回true。有交集返回false
In [ 65 ]: s2.isdisjoint(s3)
Out[ 65 ]:  True
 
#s3是否是s1的子集,是返回true,不是返回false
In [ 71 ]: s3.issubset(s1)
Out[ 71 ]:  True
 
#pop貌似是随机的移除一个元素?
In [ 73 ]: s1
Out[ 73 ]: { 3 'ac' 'china' 'inter' }
 
In [ 74 ]: s1.pop()
Out[ 74 ]:  3
 
In [ 75 ]: s1.pop()
Out[ 75 ]:  'ac'
 
In [ 76 ]: s1.pop()
Out[ 76 ]:  'inter'
 
In [ 77 ]: s1
Out[ 77 ]: { 'china' }
 
#remove是移除指定的元素,没有返回值
In [ 78 ]: s2
Out[ 78 ]: { 1 2 3 4 5 }
 
In [ 79 ]: s2.remove( 2 )
 
In [ 80 ]: s2
Out[ 80 ]: { 1 3 4 5 }





本文转自 chomperwu 51CTO博客,原文链接:http://blog.51cto.com/chomper/1935148,如需转载请自行联系原作者

相关文章
|
2月前
|
监控 算法 安全
带用集合算法set union讲解
带用集合算法set union讲解
20 0
|
2月前
|
存储 安全 Java
java集合框架及其特点(List、Set、Queue、Map)
java集合框架及其特点(List、Set、Queue、Map)
|
4月前
|
JavaScript 前端开发 定位技术
JavaScript 中如何代理 Set(集合) 和 Map(映射)
JavaScript 中如何代理 Set(集合) 和 Map(映射)
50 0
|
4月前
|
存储 Swift iOS开发
在Swift编程语言中,集合类型`Set`
在Swift编程语言中,集合类型`Set`
23 2
|
4月前
|
存储 Python
Python中,集合(Set)
Python中,集合(Set)
19 1
|
5月前
|
存储 索引 Python
Python中的集合(Set)
Python中的集合(Set)
38 3
|
5月前
|
存储 数据处理 Python
python的set集合:如何利用Python的Set集合来优化数据处理
python的set集合:如何利用Python的Set集合来优化数据处理
27 0
|
4月前
|
Java 程序员
Java集合框架:List、Set、Map类型及泛型详解
Java集合框架:List、Set、Map类型及泛型详解
|
18天前
|
程序员 索引 Python
06-python数据容器-set(集合)入门基础操作
06-python数据容器-set(集合)入门基础操作
|
1月前
|
存储 安全 Java
Java集合详解(List、Map、Set)
Java集合详解(List、Map、Set)
34 4