我正在python 3.4.3(.py)脚本中使用以下程序
number = {1,2,1,4,5,6,9}
print(number)
number.add(-5) # adding some random number to the set
number.remove(3) # in this line python reports KeyError
print(number)
number.pop()
print(number)
但是当我使用其他索引
number.remove(2) # works fine
number.remove(5) # works fine
我无法使用索引3删除任何特定原因。
答案 0 :(得分:1)
remove(x)
不会从集合中删除索引为x的项目(Python中集合是无序的),而是具有 value x的元素:
remove(elem)
从集合中删除元素elem。如果elem不包含在集合中,则会引发KeyError。
答案 1 :(得分:1)
请查看 remove(elem)的文档:
从集合中删除元素 elem 。如果不是elem,则提高KeyError 包含在集合中。
因此,number.remove(2)
,number.remove(5)
有效而number.remove(3)
无效的原因是2
中同时存在5
和number
3
不是。
请注意,如果您不想举起KeyError,可以使用 discard(elem):
从集合中删除元素 elem (如果存在)。
如果 elem 不存在,它也会从集合中删除元素,但不引发KeyError。