Skip to content

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,避免手动管理索引

  • 对来自外部的列表先检查长度再访问

相关资源

相关术语

相关课程

相关练习

← 返回语言