Python 的 set 是個資料結構,類似的還有 dictionary。這裡的 set 與中學數學學到的集合是一樣的,她可以 0 個或多個元素,但不可重複,沒有順序。
s0 = set() # 空集合,不可用 s0={}
s1 = {3, 1, 4, 8}
s2 = {x + 1 for x in s1 if x < 5} # {2,4,5}
a = [1, 3, 1, 4, 2, 3, 3]
s3 = set(a) # {1,2,3,4} 把 list 中的元素放入 s3 集合
s1 - s2 # 差集
s1 & s2 # 交集
s1 | s2 # 聯集
s1 ^ s2 # 對稱差(s1 | s2)-(s1 & s2)
3 in s1 # 元素檢查是否在
s1.add(9) # 加入一個元素,已存在則無變化
s1.remove(9) # 移除一個元素,不存在會錯誤
APCS 寫題最重要的 4 種 set 用法
第一種:去重複
a = [1, 2, 2, 3, 3]
a = set(a)
第二種:算有幾種
a = [1, 2, 2, 3, 3]
ans = len(set(a))
print(ans)
得到:
3
第三種:判斷以前有沒有出現
seen = set()
for x in a:
if x in seen:
print("重複")
seen.add(x)
第四種:找兩群共同的東西
a = {1, 2, 3, 4}
b = {3, 4, 5}
print(a & b)
得到:
{3, 4}