在 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