为什么在调用.pop()?
时,空集和列表会引发不同的异常>>> l = []
>>> l.pop()
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
l.pop()
IndexError: pop from empty list
>>> l = set()
>>> l.pop()
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
l.pop()
KeyError: 'pop from an empty set'
答案 0 :(得分:7)
因为sets
与dict
很相似,但没有值:
>>> d = {}
>>> d.pop('foo')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'pop(): dictionary is empty'
字典和集合都没有编入索引,就像列表一样,所以IndexError
在这里没有任何意义。但是和字典一样,集合中每个“键”只有一个值。
答案 1 :(得分:7)
列表是有序序列,可通过索引访问;集合是无序的和非顺序的,由密钥访问,因此是错误消息。