Python 3集合中Discard()和Remove()函数的区别是什么?

23

我有一段Python 3中的废弃(discard)和移除(remove)函数的代码。有人可以解释一下它们之间的区别吗?

remove()函数:

num_set = set([0, 1, 2, 3, 4, 5])  
 num_set.remove(0)  
 print(num_set)  
o/p
{1, 2, 3, 4, 5} 

discard() 函数:

num_set = set([0, 1, 2, 3, 4, 5])  
 num_set.discard(3)  
 print(num_set)  
o/p:
{0, 1, 2, 4, 5}  
2个回答

42

来自文档

remove(elem):从集合中移除元素elem如果集合中不包含elem,则会引发KeyError异常。

discard(elem):如果存在,则从集合中移除元素elem

也就是说:remove会引发错误,而discard不会。


5

参考文档是有用的:

remove(elem)

Remove element elem from the set. Raises KeyError if elem is not contained in the set.

discard(elem)

Remove element elem from the set if it is present.

其中一个在元素不存在时会引发异常,而另一个则不会。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接