Python set 集合最常用的操作是向集合中添加、删除元素,以及集合之間做交集、并集、差集等運算,本節将一一講解這些操作的具體實作。
向 set 集合中添加元素
set 集合中添加元素,可以使用 set 類型提供的 add() 方法實作,該方法的文法格式為:
setname.add(element)
其中,setname 表示要添加元素的集合,element 表示要添加的元素内容。
需要注意的是,使用 add() 方法添加的元素,隻能是數字、字元串、元組或者布爾類型(True 和 False)值,不能添加清單、字典、集合這類可變的資料,否則 Python 解釋器會報 TypeError 錯誤。例如:
a = {1,2,3}
a.add((1,2))
print(a)
a.add([1,2])
print(a)
運作結果為:
{(1, 2), 1, 2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
a.add([1,2])
TypeError: unhashable type: 'list'
從set集合中删除元素
删除現有 set 集合中的指定元素,可以使用 remove() 方法,該方法的文法格式如下:
setname.remove(element)
使用此方法删除集合中元素,需要注意的是,如果被删除元素本就不包含在集合中,則此方法會抛出 KeyError 錯誤,例如:
a = {1,2,3}
a.remove(1)
print(a)
a.remove(1)
print(a)
運作結果為:
{2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in <module>
a.remove(1)
KeyError: 1
上面程式中,由于集合中的元素 1 已被删除,是以當再次嘗試使用 remove() 方法删除時,會引發 KeyError 錯誤。
如果我們不想在删除失敗時令解釋器提示 KeyError 錯誤,還可以使用 discard() 方法,此方法和 remove() 方法的用法完全相同,唯一的差別就是,當删除集合中元素失敗時,此方法不會抛出任何錯誤。
例如:
a = {1,2,3}
a.remove(1)
print(a)
a.discard(1)
print(a)
運作結果為:
{2, 3}
{2, 3}
Python set集合做交集、并集、差集運算
集合最常做的操作就是進行交集、并集、差集以及對稱差集運算,首先有必要給大家普及一下各個運算的含義。

圖 1 集合示意圖
圖 1 中,有 2 個集合,分别為 set1={1,2,3} 和 set2={3,4,5},它們既有相同的元素,也有不同的元素。以這兩個集合為例,分别做不同運算的結果如表 1 所示。
運算操作 | Python運算符 | 含義 | 例子 |
---|---|---|---|
交集 | & | 取兩集合公共的元素 | >>> set1 & set2 {3} |
并集 | | | 取兩集合全部的元素 | >>> set1 | set2 {1,2,3,4,5} |
差集 | - | 取一個集合中另一集合沒有的元素 | >>> set1 - set2 {1,2} >>> set2 - set1 {4,5} |
對稱差集 | ^ | 取集合 A 和 B 中不屬于 A&B 的元素 | >>> set1 ^ set2 {1,2,4,5} |