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

Python代码迭代运行报错'int' object is not subscriptable如何解决

错误原因

核心问题是变量名冲突:

  • 你最初定义了存储输入数据的列表变量,命名为l
  • 后续计算s的内层循环中,你将迭代变量也命名为l:for l in range(len(odd))
    第一轮外层循环运行到这个内层循环时,l会被覆盖为range生成的整数值,等到第二轮外层循环执行k = int(l[i][1])时,l已经不是初始的列表类型,整数类型不支持下标访问,就触发了对应报错。
解决方案

将内层循环的迭代变量改为和外层列表不冲突的名称即可,比如修改为m:

x = int(input())
l =[]

for i in range(x):
  l.append(input().split(" "))

for i in range(x):
  k = int(l[i][1])
  sum = int(l[i][2])
  odd =[]
  for j in range(int(l[i][0])):
    odd.append(1+2*j)

  for j in range(len(odd)):
    s =0
    # 把原迭代变量l改成m,避免覆盖外层列表
    for m in range(len(odd)):
      if(odd[j]==odd[m]):
        s = s+ odd[m]*k
      else:
        s = s+ odd[m]
    if(s==sum):
      print(odd[j])
      break

补充建议:日常写代码时尽量避免使用单字符作为含义差异大的变量名,比如存储输入的列表可以命名为input_list,迭代变量用idx、item这类语义更明确的名称,能从根源上避免这类变量名冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:21:04