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

Python IndexError:索引看似对齐却出现列表赋值索引超出范围报错排查

报错原因与修复方案

报错核心原因

mse_array初始化时是长度为0的空列表,Python不支持对空列表不存在的索引位直接赋值,哪怕i的取值范围符合weights的长度限制,目标列表没有对应索引的存储空间,依然会触发索引越界错误。

修复方案

方案1:使用append()方法追加元素(推荐)

直接将函数返回值追加到列表末尾,无需手动处理索引,同时可以简化遍历逻辑,直接迭代weights的元素:

def test_weights():
    w1 = 0.25
    w2 = 0.5
    w3 = 0.75
    w4 = 1
    w5 = 1.25
    weights = [w1, w2, w3, w4, w5]
    mse_array = []

    for w in weights:
        mse_array.append(prob3(w))

方案2:预分配列表存储空间

如果需要保留按索引赋值的写法,初始化时预先给mse_array分配和weights等长的占位空间即可:

def test_weights():
    w1 = 0.25
    w2 = 0.5
    w3 = 0.75
    w4 = 1
    w5 = 1.25
    weights = [w1, w2, w3, w4, w5]
    # 预分配和weights长度一致的列表空间
    mse_array = [0.0] * len(weights)

    for i in range(len(weights)):
        mse_array[i] = prob3(weights[i])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:27:02