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

Python代码出现list index out of range错误的排查求助

问题解决方案

你的问题出在变量名冲突上:

  • 外层循环用i作为遍历x元素的变量
  • 列表推导式里又用i作为enumerate(x)的索引变量,这会直接覆盖外层的i

第一次循环时,外层i是6237,但进入列表推导式后,i变成了0、1、2、3、4这些索引值,此时n == i的条件变成「元素等于它的索引」,而你的x列表里没有元素符合这个条件,推导出来的列表是空的,取[y[index]](也就是索引0)自然触发「list index out of range」错误。

把列表推导式里的索引变量名改成别的(比如idx)就能解决问题,修正后的代码如下:

x = [6237,5342,9991,6237,1021]
y = [0,0,0,0,0]
for i in x:
    index = x.index(i)
    actualindex = [idx for idx, n in enumerate(x) if n == i][y[index]]

这样列表推导式里的idx负责存储索引,外层的i保持为当前遍历的元素值,n == i就能正确匹配所有等于当前元素的位置,不会再出现空列表的情况。

内容的提问来源于stack exchange,提问作者Yiding Max Tang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:15:53