如果我有包含10个元素的列表:
>>> l = [1,2,3,4,5,6,7,8,9,0]
为什么l [10]返回IndexError,而l [-1]返回0?
>>> l[10] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range >>> l[0] 1 >>> l[-1] 0 >>> l[-2] 9
如果列表中没有以前的元素,我想做的就是抛出一个错误。
在Python中,负列表索引表示从列表右边开始计数的项(即的l[-n]简写形式l[len(l)-n])。
l[-n]
l[len(l)-n]
如果发现需要负索引来指示错误,那么您可以简单地检查这种情况并亲自引发异常(或在那里进行处理):
index = get_some_index() if index < 0: raise IndexError("negative list indices are considered out of range") do_something(l[index])