为什么在Python中不存在索引时切片索引越界仍能运行?

为什么在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 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程