了解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()方法则不会抛出异常,即使元素不存在也不会有任何影响。所以,在使用时需要根据实际情况选择合适的方法。
