IndexError:索引越界
错误信息
list index out of range
快速摘要
你用一个大得超过列表长度的索引去取元素,但那个位置根本不存在。
为什么发生
循环上界写错,多访问了一个元素
假设列表一定有某个位置的元素,但实际更短
用变量做索引,但变量值计算错误
对空列表取
arr[0]
最小示例
✗ 错误代码
arr = [1, 2, 3]
print(arr[3])✓ 修复代码
arr = [1, 2, 3]
print(arr[2])arr 长度为 3,有效索引是 0、1、2。访问 arr[3] 越界。改成 arr[2] 取最后一个元素。
如何诊断
阅读错误信息,确认是哪个列表越界
在出错前用
print(len(arr))打印列表长度检查循环边界,确认是
< len还是<= len
如何修复
访问前判断索引是否在范围内:
if i < len(arr)修正循环上界,用
range(len(arr))而非range(len(arr) + 1)用
arr[-1]安全取最后一个元素
如何预防
循环遍历优先用
for item in arr,避免手动管理索引对来自外部的列表先检查长度再访问