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

如何在Python for循环中正确使用索引i解决列表乘积计算报错

错误原因

你的代码有3处核心问题,直接触发报错的是第一处:

  • 循环遍历对象写错:for i in list中的list是Python内置的列表类型,属于类型对象,不是可遍历的序列,因此抛出'type' object is not iterable错误。
  • 列表长度获取语法错误:len是Python内置的长度计算函数,必须传入目标列表作为参数才能返回长度值,直接写len无法获取第三个列表的长度,后续运行也会报错。
  • 循环逻辑不符合Python语法:手动初始化i = 0、在循环内执行i = i + 1是其他语言的循环写法,Python的for循环会自动给迭代变量赋值,手动修改i值反而会造成索引错位。
修正后可运行代码
# 替换为你实际的三个列表,注意保证三个列表长度一致,避免索引越界
list1 = [2, 3, 4]
list2 = [5, 6, 7]
list3 = [8, 9, 10]

list_length = len(list1)
for i in range(list_length):
    product = list1[i] * list2[i] * list3[list_length - (i + 1)]
    print(product)

代码逻辑说明:通过range(list_length)生成从0到列表长度减1的所有合法索引,循环中每次取list1、list2第i位的元素,再取list3倒数第i+1位的元素,计算三者乘积后输出。如果无法保证三个列表长度一致,可以在循环前加长度判断,避免触发索引越界错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:06:27