为什么在Python中不存在索引时切片索引越界仍能运行?
在序列的范围外切片(至少对于内置类型)不会导致错误。索引返回一个单一项,但切片返回一个子序列。因此,当您尝试索引不存在的值时,没有东西可以返回;但是,当您在切片序列的范围外时,仍可以返回一个空序列。例如:
>>> s = [1, 2, 3]
>>> s[5:8]
[]
但是,如果您只是使用索引超出范围,那么它将提供一个错误:
>>> s = [1, 2, 3]
>>> s[5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
阅读更多:Python 教程
极客教程