Skip to content

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}