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

Python用组合索引取列表值时报'int'对象不可下标错误怎么解决?

错误原因

  • 你传入decode函数的参数是整数类型,Python中整数不支持下标索引操作,也就是你写的decode[x*2-2]这种写法是非法的,这就是抛出'int' object is not subscriptable错误的直接原因。
  • 另外你的循环范围存在逻辑问题:range(1, len(str(decode)) // 2)是左闭右开区间,会漏掉最后一组两位数值,导致解码结果不全。
  • 函数名和参数名完全重名属于不规范写法,容易引发逻辑混乱,建议调整。

修复方案

首先把入参提前转成字符串再做下标截取,同时修正循环范围,调整参数命名避免冲突,修复后代码如下:

coded = ['','','','','','','','','','',
        'a','b','c','d','e','f','g','h','i',
        'j','k','l','m','n','o','p','q','r',
        's','t','u','v','w','x','y','z',' ']

def decode(encode_num):
     out = ''
     # 提前把输入转成字符串方便截取
     encode_str = str(encode_num)
     # 循环范围调整为左闭右开刚好覆盖所有分组
     for x in range(1, len(encode_str) // 2 + 1):
          # 直接从字符串截取两位转成整数当索引
          out += coded[int(encode_str[x * 2 - 2 : x * 2])]
     return out

print(decode(16133335202320))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:09:04