在 Python 中從集合中刪除元素
-
使用 Python 中的
remove()
函式從集合中刪除單個元素 -
使用 Python 中的
discard()
函式從集合中刪除單個元素 -
在 Python 中使用
-
運算子從集合中刪除多個元素 -
使用 Python 中的
difference()
函式從集合中刪除多個元素 -
使用 Python 中的
difference_update()
函式從集合中刪除多個元素
本教程將討論在 Python 中從集合中刪除元素的不同方法。
使用 Python 中的 remove()
函式從集合中刪除單個元素
Python 中的 set.remove()
函式 與集合一起使用以從呼叫集合中刪除特定元素。remove()
函式將要刪除的元素作為引數,並從呼叫集中刪除指定的元素。如果在呼叫集合中找不到該元素,remove()
函式會引發 KeyError
異常。請參考以下程式碼示例。
set1 = {1,2,3,4,5,6,7,8,9,0}
set1.remove(5)
print(set1)
輸出:
{0, 1, 2, 3, 4, 6, 7, 8, 9}
我們使用上面程式碼中的 remove(5)
函式從 set1
中刪除了元素 5
。呼叫集中不存在指定值的情況如下面的編碼示例所示。
set1 = {1,2,3,4,5,6,7,8,9,0}
set1.remove(51)
print(set1)
輸出:
KeyError Traceback (most recent call last)
<ipython-input-1-841e997b50f3> in <module>()
1 #remove()
2 set1 = {1,2,3,4,5,6,7,8,9,0}
----> 3 set1.remove(51)
4 print(set1)
KeyError: 51
我們試圖從上面程式碼中的 set1
中刪除值 51
。由於在 set1
中沒有值 51
,remove()
函式會引發 KeyError
。
使用 Python 中的 discard()
函式從集合中刪除單個元素
discard()
函式 與 remove()
函式非常相似。它還可用於僅從 Python 中的集合中刪除單個元素。discard()
函式將要刪除的元素作為輸入引數,如果該值存在於該特定集合中,則將其從呼叫集合中刪除。唯一的區別是,如果呼叫集中不存在該值,則 discard()
函式不會引發 KeyError
。以下程式碼片段向我們展示瞭如何使用 discard()
函式從集合中刪除單個元素。
set1 = {1,2,3,4,5,6,7,8,9,0}
set1.discard(5)
print(set1)
輸出:
{0, 1, 2, 3, 4, 6, 7, 8, 9}
我們使用上面程式碼中的 discard()
函式從 set1
中刪除了值 5
。如上所述,如果我們嘗試將一個值傳遞給 set1
中不存在的 discard()
函式,程式碼將成功執行,並且直譯器不會引發任何異常。下面的編碼示例演示了這種現象。
set1 = {1,2,3,4,5,6,7,8,9,0}
set1.discard(51)
print(set1)
輸出:
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
我們嘗試使用上面程式碼中的 discard()
函式從 set1
中刪除 51
。程式碼執行成功,因為指定的值在 set1
中不存在,並且沒有元素從 set1
中刪除。
在 Python 中使用 -
運算子從集合中刪除多個元素
我們可以使用 -
運算子在 Python 中執行集差操作。-
運算子從左集合中刪除右集合的所有元素,並以另一個集合的形式返回結果。如果左集合的元素不存在於右集合中,則此方法不會引發任何異常,並返回右集合作為其結果。以下程式碼片段向我們展示瞭如何使用 -
運算子從集合中刪除多個元素。
set1 = {1,2,3,4,5,6,7,8,9,0}
set2 = {2,4,6,8,0}
set1 = set1 - set2
print(set1)
輸出:
{1, 3, 5, 7, 9}
在上面的程式碼中,我們使用 -
運算子從 set1
中刪除了 set2
的所有元素,並將結果集儲存在 set3
中。以下程式碼示例演示了 set1
和 set2
都具有唯一值的場景。
set1 = {1,3,5,7,9}
set2 = {2,4,6,8,0}
set1 = set1 - set2
print(set1)
輸出:
{1, 3, 5, 7, 9}
如前所述,如果左側集合中不存在右側集合的所有元素,則程式碼成功執行,-
運算子將左側集合作為結果集返回。
使用 Python 中的 difference()
函式從集合中刪除多個元素
在集合差中,我們從另一個集合中刪除一個集合的所有元素。在 Python 中,set.difference()
函式用於執行集差操作。這個 difference()
函式的工作原理與 -
運算子相同。它將要刪除的集合作為輸入引數,從呼叫集合中刪除其所有元素,並以另一個集合的形式返回結果。請參考以下程式碼片段。
set1 = {1,2,3,4,5,6,7,8,9,0}
set2 = {2,4,6,8,0}
set1 = set1.difference(set2)
print(set1)
輸出:
{1, 3, 5, 7, 9}
我們使用 difference()
函式從 set1
中刪除了 set2
的所有元素,並將結果儲存在上述程式碼中的 set3
中。difference()
函式的場景,其中輸入集的所有值都不存在於呼叫集中,與 -
運算子相同。
使用 Python 中的 difference_update()
函式從集合中刪除多個元素
在前兩節中,我們討論瞭如何從一個集合中刪除多個元素,這兩種方法都涉及我們需要儲存結果的第三個集合。這種方法不需要新的集合來儲存結果。它更新我們的呼叫集並將結果儲存在呼叫集中。difference_update()
函式 將需要從呼叫集中刪除元素的集合作為輸入引數,並從呼叫集中刪除所有公共元素。
set1 = {1,2,3,4,5,6,7,8,9,0}
set2 = {2,4,6,8,0}
set1.difference_update(set2)
print(set1)
輸出:
{1, 3, 5, 7, 9}
我們從 set1
中刪除了 set2
的所有元素,並使用上面程式碼中的 difference_update()
函式用結果集更新了 set1
。與前兩種方法不同,沒有必要建立一個新的集合來儲存結果。相反,結果會自動插入到 set1
。
difference_update()
函式等效於 Python 中的 -=
運算子。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn