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

Python按元组指定索引对列表元素做减法触发IndexError问题求解

错误原因

你误将元组列表的遍历序号idx作为了数组的操作索引:元组列表li共有6个元素,遍历过程中idx会从0递增到5,但目标数组array长度仅为3,合法索引最大为2,当idx >= 3时访问array[idx]自然触发索引越界错误。
你实际需要使用的数组操作索引是每个元组的第一个元素,不是遍历元组列表的序号。

修复方案

直接迭代元组列表中的每个元组,分别取出目标索引和要减去的数值进行操作即可:

li = [(0, 1), (1, 1), (1, 2), (2, 1), (2, 2), (2, 3)]
array = [1,2,3] 
for tar_idx, sub_val in li:
    print(array)
    array[tar_idx] -= sub_val
print(array)

如果你需要得到预期的[0, 0, 0]结果,调整元组内的减数与数组初始值匹配即可,比如将li修改为[(0, 1), (1, 2), (2, 3)]即可输出对应结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:45:02