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

Python遍历多整数列表按索引计算时解决'int' object is not subscriptable错误的方法

Python遍历多整数列表按索引计算时解决'int' object is not subscriptable错误的方法

嘿,我来帮你搞定这个问题!你遇到的TypeError: 'int' object is not subscriptable错误,核心原因应该是你错误地把整个列表转换成了整数——你的列表本身就是存储整数元素的容器,完全不需要把整个列表转成int类型!这么做会让你的列表变量变成单个整数,自然没法用下标[i]去访问元素了。

另外看你的代码还有两个小问题需要修正:一是重复给percentage1赋值,最后一个计算应该是percentage3(不然打印时会找不到这个变量);二是没有处理除数为0的情况,list2里有0元素,直接计算会触发ZeroDivisionError。

下面是修正后的完整代码:

user_list = [0, 1, 2]  # 遍历次数由这个列表的长度决定
list2 = [2, 0, 2]
list3 = [1, 0, 0]
list4 = [1, 0, 0]
list5 = [2, 0, 0]

for i in range(len(user_list)):
    # 先判断除数是否为0,避免除零错误
    if list2[i] == 0:
        print(f"索引{i}处的除数为0,无法计算百分比")
        continue
    
    # 按索引取出对应元素计算百分比,不再重复赋值
    percentage1 = (list3[i] / list2[i]) * 100
    percentage2 = (list4[i] / list2[i]) * 100
    percentage3 = (list5[i] / list2[i]) * 100
    
    # 打印当前索引的计算结果
    print(f'''{percentage1}%
{percentage2}%
{percentage3}%''')

关键修正点说明:

  • 不要转换整个列表:你的列表元素已经是整数,直接使用即可,转换整个列表会破坏列表的结构,导致无法用下标访问元素。
  • 修复变量重复赋值问题:原来的代码把percentage1赋值了三次,最后一个计算对应percentage3,这样打印时才不会报错。
  • 增加除数为0的判断:提前检查list2[i]是否为0,避免运行时出现除零错误,让代码更健壮。

备注:内容来源于stack exchange,提问作者help me.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 08:47:38