時間複雜度:O(1)
set特點:
1.不允許重複元素
2.允許不同類型元素
3.所有元素必須是可哈希的(list、set、dict不可以,tuple可以)
set = {1,2,“hello”}
①:set1 = {1,1.0} 兩個值會被當作一個,常數地址是相同的
②:set1.add(“world”) 添加元素
③:set1.remove(“hello”) 刪除指定元素,若要刪除的元素不存在報錯
set1.discard(“hello”) 刪除指定元素,若要刪除的元素不存在不會報錯
④:set1.pop() 隨機刪除一個元素
⑤: set1.len(set1) 長度
set集合操作
set集合間操作並不會改變集合原結構,而是新生成一個集合
set1 = {“a”, “b”, “c”}
set2 = {“a”, “d”, “e”}
①:並集
set1.union(set2)
set1 | set2
輸出結果:{“a”, “b”, “c”,“d”, “e”}
②:交集
set1.intersection(set2)
set1 & set2
輸出結果:{“a”}
③:差集,從set2裏刪除在set1裏的元素
set2.difference(set1)
set2 - set1
輸出結果:{ “d”, “e”}
④:對稱差,並集-交集
set2.symeteric_difference(set1)
set2 ^ set1
輸出結果:{“b”, “c”,“d”, “e”}
應用場景:
set集合最常用於update操作,從數據庫中查出的集合是set1,最新的集合是set2,而直接先將所有舊的刪除,新的創建這種做法又不適合,所以先執行差集add = set2 - set1獲取需要添加的元素,添加到數據庫,再通過delete = set1 - set2獲取要從就集合中刪除的元素從數據庫刪除