Python 集合型別


集合基本上是不同散列表物件的無序集合。我們可以使用集合進行一些數學運算,例如集合並集、交集、差集等。我們還可以使用集合從集合中刪除重複項。

集合不記錄元素位置。它不支援索引、切片或其他與序列相關的操作。

在 Python 中,基本上有兩種型別的集合。setfrozenset。set 型別是可變的,而 frozenset 是不可變的。我們可以在 set 上執行 add()、remove() 和此類操作,但 frozenset 不允許。

一些與集合相關的函式和操作如下所示:

方法 len(s)

len() 方法返回集合中元素的數量。

操作 (x in s) 或 (y not in s)

innot in 操作用於檢查元素是否屬於集合。在第一個語句 (x in s) 中,當值 x 在集合 s 中時,它將返回 True。第二個 (y not in s) 將返回 True,當元素 y 不存在於集合中時。

方法 isdisjoint(other_set)

此方法將檢查 other_set 是否與當前集合不相交。如果兩者至少有一個元素相同,則該方法將返回 False。

方法 issuperset(other_set)

當 other_set 集合中的所有元素也存在於當前集合中時,此函式返回 True。它基本上檢查當前集合是否為 other_set 的超集。

方法 union(other_set)

union() 函式透過收集當前集合和 other_set 中的所有元素來返回一個新集合。

方法 intersection(other_set)

intersection() 函式透過收集當前集合和 other_set 中的公共元素來返回一個新集合。

方法 difference(other_set)

difference() 方法將返回一個集合,其中最終集合包含第一個集合中的所有元素,除了這兩個集合的公共元素。

方法 add(elem)

將元素 elem 新增到集合中。

方法 discard(elem)

從集合中刪除元素 elem。當 elem 存在於集合中時,這將起作用。還有另一種稱為 remove() 的方法。在 remove() 中,如果專案不存在於集合中,它將引發 KeyError。

示例程式碼

線上演示

mySet1 = {1, 2, 5, 6}
mySet2 = {8, 5, 3, 4}
mySet3 = set(range(15)) # all elements from 0 to 14 in the set
mySet4 = {10, 20, 30, 40}
print(set(mySet1.union(mySet2)))
print(set(mySet1.intersection(mySet2)))
print(set(mySet1.difference(mySet2)))

print(mySet3.issuperset(mySet1))
print(mySet1.isdisjoint(mySet4))

mySet4.add(45)
print(mySet4)

mySet4.discard(40)
print(mySet4)

輸出

set([1, 2, 3, 4, 5, 6, 8])
set([5])
set([1, 2, 6])
True
True
set([40, 10, 20, 45, 30])
set([10, 20, 45, 30])

更新於: 2019-07-30

4K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告