Python设置操作remove(index)

时间:2018-07-15 07:35:20

标签: python python-3.x

我正在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删除任何特定原因。

2 个答案:

答案 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中同时存在5number 3不是。


请注意,如果您不想举起KeyError,可以使用 discard(elem)

  

从集合中删除元素 elem (如果存在)。

如果 elem 不存在,它也会从集合中删除元素,但不引发KeyError