为什么在Python中使用'set'时出错?

7 投票
4 回答
11534 浏览
提问于 2025-04-15 17:34
s = set('ABC')
s.add('z')
s.update('BCD')
s.remove('DEF') # error here
s -= set('DEFG')

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

4 个回答

0

来自 http://docs.python.org/library/stdtypes.html :

remove(elem)

从集合中移除元素 elem。如果集合中没有这个元素,就会报错 KeyError。

'DEF' 不在集合中

2

调用 set.remove() 方法时,你传入的参数必须是集合中的一个成员。

也就是说,'DEF' 这个值不在你的集合里,而 'D' 是在的。

18

正如其他人提到的,'DEF'这个你想要移除的元素,其实并不是集合中的一个成员。而根据文档的说明,使用remove方法时,如果要移除的元素不在集合里,就会抛出一个叫做KeyError的错误。

如果你希望在元素缺失时不报错,而是安静地什么都不做,那你可以用discard方法来代替remove。这就是discardremove这两个方法之间最重要的区别,也是它们两个都存在的原因!

撰写回答