Python 从索引中进行列表切片

Python 从索引中进行列表切片,python,python-3.x,list,Python,Python 3.x,List,我试图理解这种切片背后的逻辑。例如,当我们试图通过索引来访问元素时,它会给我们一个索引器 >>> a = ["a", "b", "c", "d", "e", "f", "g", "h", "l"] >>> a[30:] [] >>> a[:30] ['a', 'b'

我试图理解这种切片背后的逻辑。例如,当我们试图通过索引来访问元素时,它会给我们一个索引器

>>> a = ["a", "b", "c", "d", "e", "f", "g", "h", "l"]
>>> a[30:]
[]
>>> a[:30]
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'l']
>a[12]
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
索引器:列表索引超出范围

我们在列表中总共有9个元素。然而,我们可以使用任何大于8的索引。任何技术解释都将不胜感激。

如果您将
[i:j]
这样的切片视为“列出索引介于
i
j
之间的所有元素”。如果原始列表有3个元素,
i
为5,
j
为7,那么就没有满足此要求的元素,因此结果将是一个空列表


实际上,该属性非常有用。

切片定义良好,但为空。试图访问不存在的元素的尝试未定义,因此出现错误。
>>> a[12]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range