在使用列表时避免索引错误
当您第一次使用列表时,有一种常见的错误类型。 假设您有一个包含三项的列表,您要求第四项:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[3])
此示例导致索引错误:
Traceback (most recent call last):
File "motorcycles.py", line 2, in <module>
print(motorcycles[3])
~~~~~~~~~~~^^^
IndexError: list index out of range
Python 试图为您提供索引为 3 的项目。但是当它搜索列表时,motorcycles 中没有任何项目的索引为 3。由于列表中索引的逐一性,此错误是典型的。 人们认为第三项是项目编号 3,因为他们从 1 开始计数。但是在 Python 中,第三项是编号 2,因为它从 0 开始索引。
索引错误意味着 Python 无法在您请求的索引处找到项目。如果您的程序中出现索引错误,请尝试将您要求的索引调整一个。 然后再次运行程序,看看结果是否正确。
请记住,无论何时您想要访问列表中的最后一项,都应该使用索引 -1
。 这将始终有效,即使您的列表自上次访问以来已更改大小:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[-1])
索引 -1
始终返回列表中的最后一项,在本例中为值 'suzuki'
:
suzuki
这种方法唯一会导致错误的情况是当您从空列表中请求最后一项时:
motorcycles = []
print(motorcycles[-1])
motorcycles 中没有物品,因此 Python 返回另一个索引错误:
Traceback (most recent call last):
File "motorcyles.py", line 3, in <module>
print(motorcycles[-1])
~~~~~~~~~~~^^^^
IndexError: list index out of range
如果发生索引错误并且您不知道如何解决它,请尝试打印您的列表或只打印列表的长度。 您的列表可能看起来与您想象的大不相同,尤其是当它由您的程序动态管理时。 查看实际列表或列表中项目的确切数量可以帮助您解决此类逻辑错误。