Jos*_*hua 5 python exception list set
为什么在调用.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'
Run Code Online (Sandbox Code Playgroud)
因为sets很像dicts但没有值:
>>> d = {}
>>> d.pop('foo')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'pop(): dictionary is empty'
Run Code Online (Sandbox Code Playgroud)
字典和集合都没有编入索引,就像列表一样,所以IndexError这里没有任何意义.但是就像字典一样,集合中每个"键"只有一个值.