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

Python遍历成绩列表报index out of range错误,无法获得预期输出

问题分析与修正方案

现存问题

  • 索引访问逻辑错误触发越界:你在内层循环中写的是marks[j][i],但你遍历的i对应学生序号,j对应成绩序号,正确的访问写法应该是marks[i][j]。同时marks列表总共只有3个元素,最大合法索引为2,但内层循环j的取值范围是2~4,当j≥3时访问marks[j]必然超出列表索引范围,直接触发报错。
  • 缺少字典赋值逻辑:你初始化了marks_c字典,但全程没有往里面写入任何键值对,最终输出只能是空字典,不符合预期。
  • 冗余打印逻辑干扰结果:内层循环中多余的打印语句没有实际作用,还会输出大量无关内容。

修正代码

如果你需要将每个学生排除第一个成绩后的剩余成绩存入字典,可参考如下代码:

marks = [['john',80, 90, 76, 82],['katy', 50, 55, 70, 65],['sydney',80,72, 88, 90]]
marks_c = {}
for i in range(len(marks)):
    name = marks[i][0]
    # 取索引2及之后的所有成绩,对应你原来j从2开始遍历的逻辑
    target_scores = marks[i][2:]
    # 如果需要算平均分,可替换为 marks_c[name] = round(sum(target_scores)/len(target_scores), 2)
    marks_c[name] = target_scores

print(marks_c)

运行输出结果:
{'john': [90, 76, 82], 'katy': [55, 70, 65], 'sydney': [72, 88, 90]}

如果你需要统计的是其他维度的结果,只需要调整target_scores对应的加工逻辑即可。

内容的提问来源于stack exchange,提问作者Super MaxLv4

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:18:03