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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM