2022.04.10-python學習之set
阿新 • • 發佈:2022-04-10
1 # File : learning_set.py 2 # Datetime : 2022/4/10 0010 13:49 3 # 集合 set 4 5 # 集合是一個無序的,不重複的資料組合, 6 # 它的主要作用如下: 7 # 1. 去重複,把一個列表變成集合,就自動去重了 8 # 2. 關係測試,測試兩組資料之前的交集、差集、並集等關係 9 10 11 # 1. 集合的建立 12 # 1.1 直接使用{}建立 13 # 例: 14 set1 = {"python", "mysql", "web"} 15 set2 = {1, 2, 3, 4, 5} 16 set3 = {"python", 123, ("人生苦短", "我用python")} 17 18 # 1.2 使用set()函式建立 19 set4 = set() # 建立一個空集合 20 set5 = set("人生苦短,我用python") 21 print(set5) 22 23 # 注意:建立空集合時,只能 使用set()函式實現,{}表示的是建立一個空字典 24 25 list1 = [[1, 3, 5], 123, 456] 26 # set6 = set(list1) #此時會報錯,因為list1中元巢狀的列表此時屬於不可雜湊內容,即列表list中元素索引為0的位置是可變資料型別 27 # 備註28 # 可以被雜湊的資料結構:int、float、str、tuple 和 NoneType。 29 # 不可以被雜湊的資料結構:dict、list 和 set。 30 # 關於雜湊和不可雜湊的資料結構,詳細介紹參考連結:https://juejin.cn/post/6844904198711017485 31 32 # 2. 集合的新增和刪除 33 # 2.1 向集合中新增元素 使用add()方法實現 如 34 set1.add("人生苦短,我用python") 35 print("使用add()函式向集合中新增元素後", set1) 36 37 # 2.2 從集合中刪除元素 38 set1.remove("web") # 從集合中刪除指定元素 39 # 注意: 40 # 使用remove刪除指定元素時,如果元素不存在會丟擲異常, 41 # 在實際操作中,在移除指定元素時最好使用in關鍵字先判斷指定元素是否存在 42 43 print("使用remove()函式從集合中刪除指定元素後", set1) 44 45 set1.pop() # 移除一個元素 46 print("使用pop()函式從集合中移除一個元素後", set1) 47 48 set1.clear() # 清空集合 49 print("使用clear()函式清空集合後", set1) 50 51 # 3. 集合的交集,並集,和差集運算 52 # 3.1 交集運算子 & 53 # 3.2 並集運算子 | 54 # 3.3 差集運算子 - 55 56 # 程式碼例項 57 striker = {"鄧肯", "加內特", "馬龍"} # 前鋒球員名字 58 centre_forward = {"鄧肯", "奧尼爾", "姚明"} # 中鋒球員名字 59 # 輸出既是前鋒也是中鋒的球員名字 60 print("交集運算", striker & centre_forward) # 等同於 striker.intersection(centre_forward) 61 62 # 輸出前鋒和中鋒的全部球員名字 63 print("並集運算", striker | centre_forward) # 等同於 striker.union(centre_forward) 64 65 # 輸出是前鋒但不是中鋒的球員名字 in A not in B 66 print("差集運算", striker - centre_forward) # 等同於 striker.difference(centre_forward) 67 68 # 輸出是中鋒但不是前鋒的球員名字 in B not in A 69 print("差集運算2", centre_forward - striker) # 等同於 centre_forward.difference(striker) 70 71 # 對稱差集(反向交集) 72 print("對稱差集", striker ^ centre_forward) # 等同於 striker.symmetric_difference(centre_forward)