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

如何修复Python数组相乘时出现的IndexError: list index out of range错误

问题排查

报错行:vc = [a_list[i] * b_list[i] for i in range(len(a_list))]
报错类型:IndexError: list index out of range

错误根源

  • 乘法计算代码放置位置错误:你将逐元素相乘的逻辑放在了读取第二个数组元素的内层循环中,每输入1个b数组元素就触发一次全量乘法计算。此时b_list的长度仅有1,而a_list的长度为你输入的n,遍历a_list长度的索引时必然会访问到b_list不存在的索引位置,触发越界。
  • 存在隐藏残留问题:代码未在每轮计算完成后清空b_list,下一轮输入新数组时会残留上一轮的元素,导致后续计算结果出错。
修复后代码
a_list = []
b_list = []
count = 0

while count != -1:
    n = int(input("1. array size : "))
    print("1. array elements")
    for i in range(0, n):
        ele = int(input())
        a_list.append(ele)
        print(a_list)
    m = int(input("2. array size : "))
    if n != m:
        print("create arrays at the same size")
        a_list.clear()
        count += 1
    else:
        print("2. array elements:")
        for i in range(0, n):
            elee = int(input())
            b_list.append(elee)
            print(b_list)
        # 所有元素读取完成后再执行逐元素相乘
        vc = [a_list[i] * b_list[i] for i in range(len(a_list))]
        print("Last List: " + str(vc))
        # 清空两个数组,避免下一轮计算残留旧数据
        a_list.clear()
        b_list.clear()
        count+= 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:39:04