Python 集合 discard() 方法



Python 集合 discard() 方法用于从集合中删除指定的元素。与 remove() 方法不同,如果集合中不存在该元素,则不会引发错误,集合保持不变。当您不确定元素是否存在于集合中时,此方法是 remove() 方法的更安全替代方案。

语法

以下是 Python 集合 discard() 方法的语法和参数:

set.discard(element)

参数

以下是 discard() 方法的参数:

  • element: 要从集合中删除的元素(如果存在)。

返回值

此方法返回一个新集合,其中包含所有指定集合的公共元素。

示例 1

以下是 python 集合 discard() 方法的基本示例。在此示例中,我们使用指定元素创建一个集合,并使用 discard() 方法从集合中删除元素 3:

# Define a set
my_set = {1, 2, 3, 4, 5}

# Remove element 3 from the set
my_set.discard(3)

print(my_set)  

输出

{1, 2, 4, 5}

示例 2

当我们尝试删除集合中不存在的元素时,不会引发错误。以下示例显示了这一点,因为指定的元素 6 不存在于集合中,所以没有引发错误:

# Define a set
my_set = {1, 2, 4, 5}

# Try to remove non-existing element 6 from the set
my_set.discard(6)

print(my_set) 

输出

{1, 2, 4, 5}

示例 3

在此示例中,discard() 方法与条件语句一起使用,以安全地从集合中删除元素:

# Define a set
my_set = {1, 2, 3, 4, 5}

# Safely remove element if present
if 3 in my_set:
    my_set.discard(3)

print(my_set) 

输出

{1, 2, 4, 5}

示例 4

discard() 和 remove() 方法之间的关键区别在于,如果找不到该元素,discard() 不会引发错误,而 remove() 会引发 KeyError。在此示例中,我们展示了 remove() 方法和 discard() 方法之间的区别:

# Define a set
my_set = {1, 2, 4, 5}

# Try to remove non-existing element 3 using discard()
my_set.discard(3)

print(my_set)  # Output: {1, 2, 4, 5}

# Try to remove non-existing element 3 using remove()
my_set.remove(3)  # This raises a KeyError since 3 is not present in the set

输出

{1, 2, 4, 5}
Traceback (most recent call last):
  File "\sample.py", line 10, in <module>
    my_set.remove(3)  # This raises a KeyError since 3 is not present in the set
    ^^^^^^^^^^^^^^^^
KeyError: 3
python_set_methods.htm
广告