06.18 Python 集合類型 Set

Python 集合類型 Set

Set 是一個無序的集合類型。它可以遍歷,修改,沒有重複的元素。支持數學集合的一些操作,例如交集,並集,差集,補集。

創建集合


使用花括號 {} 或者 set() 函數創建集合。注意,創建一個空的集合只能用 set(),因為 {} 創建的是一個空字典。

Python 集合類型 Set

創建了一個 basket 集合,可以發現,裡面相同的元素不會重複出現,最終 basket 只有4個元素。

可以用 e in s 判斷元素 e 是否存在集合 s 中。

set() 函數創建集合:

Python 集合類型 Set

集合的操作


add(x) 方法,如果元素 x 不存在集合中,則添加。這個函數修改了原來的集合。

Python 集合類型 Set

union(s) 方法,計算並集,也可以用 | 操作符。它不會修改原來的集合,而是返回新的集合。

Python 集合類型 Set

intersection(s) 方法,計算交集,也可以用 & 操作符。它不會修改原來的集合,而是返回新的集合。

Python 集合類型 Set

difference(s) 方法,計算差集,也可以用 - 操作符。它不會修改原來的集合,而是返回新的集合。

Python 集合類型 Set

clear() 方法,清空集合。

Python 集合類型 Set

symmetric_difference(s) 方法,也可以用 ^ 操作符。返回不同時在兩個集合的元素。它不會修改原來的集合,而是返回新的集合。

Python 集合類型 Set

update(s) 方法,更新集合。會修改原來的集合。

Python 集合類型 Set

union(s)、intersection(s)、difference(s)、symmetric_difference(s) 都不會修改原來的集合。如果你想要修改原來的集合,需要用另外4個方法 update、intersection_update、difference_update、symmetric_difference_update。

issubset(s) 方法,判斷是否是另一個集合的子集。也可以用操作符 <=

Python 集合類型 Set

集合 a 裡面的元素都在集合 b 存在,所以 a 是 b 的子集。

issuperset(s) 方法,判斷是否是另一個集合的超集。也可以用操作符 >=。

Python 集合類型 Set

可以用 for e in s 語法迭代集合。

Python 集合類型 Set

frozenset


還有一個集合用 frozenset() 函數聲明,它是不可更改的,一旦聲明,就不可以修改了。

Python 集合類型 Set

它和普通集合有一些共同的操作,例如:

key in s # 判斷 key 是否存在集合中

key not in s # 判斷 key 不在集合中

s1 == s2 # s1 和 s2 是否相等

s1 != s2 # s1 和 s2 不等

s1 <= s2 # s1 是 s2 的子集

s1 < s2 # s1 是 s2 的真子集

s1 >= s2 # s1 是 s2 的超集

s1 > s2 # s1 是 s2 的超集,兩者不可以相等

s1 | s2 # 並集

s1 & s2 # 交集

s1 – s2 # 差集

s1 ˆ s2 # 不同在 s1 和 s2 中的元素


分享到:


相關文章: