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

Python操作列表时报'str' object has no attribute 'append'错误如何排查?

报错原因

  • 核心为类型不匹配错误:初始化时l每个子项的第二个元素是空列表,但首次遇到对应索引的solved_letters条目时,代码直接将l[x[0]][1]赋值为字符串类型的x[1],后续重复出现同索引条目时,会尝试调用字符串不存在的append()方法,触发AttributeError。
  • 额外隐患:如果solved_letters中存在多字符的x[1],首次赋值后l[x[0]][1]存储的是完整字符串,后续遍历拼接逻辑也会和“存储对应索引唯一字母”的需求不符。

解决方法

修改首次赋值的逻辑,不要直接替换初始化好的列表,而是把x[1]的字符逐个加入列表中,修正后的代码如下:

n = []
l = []
for x in range(83):
    l.append( [-1, [] ] )
print(l[0][1])
for x in solved_letters:
    if x[0] not in n:
        n.append(x[0])
        l[x[0]][0] = x[0]
        # 不直接赋值替换列表,将字符加入已有列表
        for v in x[1]:
            if v not in l[x[0]][1]:
                l[x[0]][1].append(v)
    else:
        for v in x[1]:
            if v not in l[x[0]][1]:
                l[x[0]][1].append(v)

如果确定x[1]永远是单个字符,也可以简化首次赋值逻辑,直接把字符包装为列表再赋值:

l[x[0]][0], l[x[0]][1] = x[0], [x[1]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:39:03