欢迎访问宙启技术站
智能推送

了解Python中的delete()方法和discard()方法的区别

发布时间:2023-12-28 08:48:35

Python中的delete()方法和discard()方法都是用于从集合中删除元素的方法。它们的区别在于当元素不存在时的处理方式。

delete()方法是集合的一个成员函数,用于删除集合中的指定元素。如果删除的元素不在集合中,会抛出KeyError异常。以下是一个使用delete()方法的示例:

my_set = {"apple", "banana", "cherry"}
my_set.remove("banana")  # 删除集合中的"banana"元素
print(my_set)  # 输出: {'cherry', 'apple'}

my_set.remove("mango")  # 删除集合中的"mango"元素,但元素不存在,抛出KeyError异常

上述代码删除了集合my_set中的元素"banana",并打印了剩余的集合。然后,尝试删除不存在的元素"mango",结果抛出了KeyError异常。

discard()方法也是集合的一个成员函数,用于删除集合中的指定元素,但是当元素不存在时不会抛出异常,而是静默地不做任何操作。以下是一个使用discard()方法的示例:

my_set = {"apple", "banana", "cherry"}
my_set.discard("banana")  # 删除集合中的"banana"元素
print(my_set)  # 输出: {'cherry', 'apple'}

my_set.discard("mango")  # 删除集合中的"mango"元素,但元素不存在,静默不做任何操作
print(my_set)  # 输出: {'cherry', 'apple'}

与前面的示例相比,discard()方法删除了集合my_set中的元素"banana",并打印了剩余的集合。然后,尝试删除不存在的元素"mango"时,并没有抛出任何异常,集合保持不变。

总结来说,delete()方法在删除集合中的元素时,如果元素不存在会抛出KeyError异常;而discard()方法则不会抛出异常,即使元素不存在也不会有任何影响。所以,在使用时需要根据实际情况选择合适的方法。