python3---集合

集合(set)是一个无序不重复元素的序列。

它的主要作用如下:

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

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

1 parame = {value01,value02,...}
2 或者
3 set(value)

例:

1 #!/usr/bin/python3
 2  
 3 student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
 4  
 5 print(student)   # 输出集合,重复的元素被自动去掉
 6  
 7 # 成员测试
 8 if('Rose' in student) :
 9     print('Rose 在集合中')
10 else :
11     print('Rose 不在集合中')
12  
13  
14 # set可以进行集合运算
15 a = set('abracadabra')
16 b = set('alacazam')
17  
18 print(a)
19  
20 print(a - b)     # a和b的差集
21  
22 print(a | b)     # a和b的并集
23  
24 print(a & b)     # a和b的交集
25  
26 print(a ^ b)     # a和b中不同时存在的元素
复制代码

以上实例输出结果:

1 {'Mary', 'Jim', 'Rose', 'Jack', 'Tom'}
2 Rose 在集合中
3 {'b', 'a', 'c', 'r', 'd'}
4 {'b', 'd', 'r'}
5 {'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
6 {'a', 'c'}
7 {'l', 'r', 'z', 'm', 'b', 'd'}

常用操作:

 s = set([3,5,9,10])      #创建一个数值集合  
 2   
 3 t = set("Hello")         #创建一个唯一字符的集合  
 4 
 5 
 6 a = t | s          # t 和 s的并集  
 7   
 8 b = t & s          # t 和 s的交集  
 9   
10 c = t – s          # 求差集(项在t中,但不在s中)  
11   
12 d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
13   
14    
15   
16 基本操作:  
17   
18 t.add('x')            # 添加一项  
19   
20 s.update([10,37,42])  # 在s中添加多项  
21   
22    
23   
24 使用remove()可以删除一项:  
25   
26 t.remove('H')  
27   
28   
29 len(s)  
30 set 的长度  
31   
32 'x' in s  
33 测试 'x' 是否是 s 的成员   记得是'x' 不是 直接 x  因为是x在集合中是一个字符
34   
35 'x' not in s  
36 测试 'x' 是否不是 s 的成员  
37   
38 s.issubset(t)  
39 s <= t  
40 测试是否 s 中的每一个元素都在 t 中  
41   
42 s.issuperset(t)  
43 s >= t  
44 测试是否 t 中的每一个元素都在 s 中  
45   
46 s.union(t)  
47 s | t  
48 返回一个新的 set 包含 s 和 t 中的每一个元素  
49   
50 s.intersection(t)  
51 s & t  
52 返回一个新的 set 包含 s 和 t 中的公共元素  
53   
54 s.difference(t)  
55 s - t  
56 返回一个新的 set 包含 s 中有但是 t 中没有的元素  
57   
58 s.symmetric_difference(t)  
59 s ^ t  
60 返回一个新的 set 包含 s 和 t 中不重复的元素  
61   
62 s.copy()  
63 返回 set “s”的一个浅复制

转载自:https://www.cnblogs.com/jiyimeng/p/python11152.html

posted @ 2018-04-02 20:54  十万行代码  阅读(1863)  评论(0编辑  收藏  举报