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

如何按顺序对列表元素执行指定算术运算?解决索引越界错误

解决列表索引越界问题并优化算术运算

问题分析

你碰到的"list index out of range"错误,大概率是numElements的计算有误——比如误写成len(factors)+1,或是循环中不小心修改了factors列表的长度。另外,你要执行的代数表达式可以化简,能大幅简化计算步骤。

代数表达式化简

你需要执行的运算:
x³ + 12x² + 48x + 64
这是完全立方公式的展开式,等价于:
(x + 4)³
验证:(x+4)³ = x³ + 3×4x² + 3×4²x + 4³ = x³+12x²+48x+64,完全匹配原表达式,用这个式子计算更高效。

正确代码实现

方法1:直接遍历列表元素(推荐,彻底避免索引错误)

不用手动处理索引,直接遍历factors中的每个元素:

factors = [1, 2, 4, 8, 16, 32, 64, -1, -2, -4, -8, -16, -32, -64]
result = []
for x in factors:
    res = (x + 4) ** 3
    result.append(res)
print(result)

运行结果:

[125, 216, 512, 1728, 8000, 46656, 274625, 27, 8, 0, -64, -1728, -46656, -216000]

方法2:修复索引式循环

如果一定要用索引循环,确保numElements严格等于列表长度:

factors = [1, 2, 4, 8, 16, 32, 64, -1, -2, -4, -8, -16, -32, -64]
numElements = len(factors)  # 必须准确获取列表长度
result = []
for i in range(numElements):
    x = factors[i]
    res = (x + 4) ** 3
    result.append(res)
print(result)

方法3:列表推导式(更简洁)

一行代码完成计算:

factors = [1, 2, 4, 8, 16, 32, 64, -1, -2, -4, -8, -16, -32, -64]
result = [(x + 4) ** 3 for x in factors]
print(result)

错误排查要点

如果仍出现索引越界,检查两点:

  • 确认numElements是len(factors),没有额外的加减操作
  • 循环过程中有没有对factors执行append()、pop()等修改长度的操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:07:14