You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python列表访问报错:如何修复遍历列表时的索引输出错误?

问题分析与修复方案:列表索引访问报错

咱们一步步拆解你遇到的问题,以及对应的解决办法:

报错的核心原因

你的代码里有两个明显的逻辑错误,直接导致Python抛出异常:

  • index变量未定义:你写了print(color[index]),但从头到尾都没声明过index这个变量的取值,Python找不到它,会直接抛出NameError: name 'index' is not defined。
  • 循环变量用错了对象:range(0, len(colors))生成的是0到4的整数(对应列表的5个元素的索引),所以循环里的color其实是一个个整数(比如0、1、2...)。你试图对整数用[]索引操作,这完全不符合Python的语法逻辑——整数不是可索引的对象,就算index定义了,也会抛出TypeError: 'int' object is not subscriptable。

针对不同需求的修复代码

根据你提到的“打印列表索引的需求”,分几种常见场景给出对应代码:

场景1:只想打印列表的所有索引值(0、1、2、3、4)

直接遍历range生成的索引序列就行,把循环变量名改成更清晰的index:

colors = ["red", "green", "blue", "yellow", "black"]
for index in range(len(colors)):
    print(index)

场景2:想打印每个索引对应的列表元素(red、green...)

要用索引去访问colors列表本身,而不是循环变量:

colors = ["red", "green", "blue", "yellow", "black"]
for index in range(len(colors)):
    print(colors[index])

或者更符合Python风格的写法,直接遍历列表元素(不用手动管理索引):

colors = ["red", "green", "blue", "yellow", "black"]
for color in colors:
    print(color)

场景3:想同时打印索引和对应的元素(比如“索引0:red”)

用Python内置的enumerate函数最方便,它会同时返回每个元素的索引和值:

colors = ["red", "green", "blue", "yellow", "black"]
for index, color in enumerate(colors):
    print(f"索引 {index}:{color}")

内容的提问来源于stack exchange,提问作者Forge Mods

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 21:07:45