python - Python'str'对象即使在列表上操作时也没有属性'append'?
问题描述
我不断收到这个简单的错误,我不明白为什么。我正在尝试删除多个明文中相同索引处的重复字母,但我得到的这封信似乎不合逻辑,因为l
它是一个较小数组的数组,而这些较小的数组有一个列表作为元素来说明在这个特定索引处找到了哪些唯一字母. 请注意,打印会按预期返回列表。
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], l[x[0]][1] = x[0], x[1]
else:
for v in x[1]:
if v not in l[x[0]][1]:
l[x[0]][1].append(v)
样本solved_letters
[[30, 'a'], [32, 'w'], [34, ' '], [36, 's'], [42, 'n'], [45, 'p'], ...]
解决方案
问题是solved_letters
第二个元素(即solved_letters[*][1]
)是字母而不是列表,所以一旦你l
在下面的行中分配它们 - l[x[0]][0], l[x[0]][1] = x[0], x[1]
,l
将包含一些东西 line - l[30][30, 'a']
。下次您尝试使用循环(即for v in x[1]
)访问它时,您可以遍历一个字符串,但您不能追加,因为它是一个字符串而不是列表。
为了克服这个问题,我将 - 更改l[x[0]][0], l[x[0]][1] = x[0], x[1]
为 - l[x[0]][0], l[x[0]][1] = x[0], [x[1]]
。
推荐阅读
- sql-server - Hibernate JPA Criteria - 如何加入子查询
- javascript - FileUpload / Input File 我无法上传 .exe 文件
- c++ - 如何优化同时多线程的代码?
- sql - 计算甲骨文第一季度与第二季度的收入增长
- tensorflow - 为什么我的 RNN 模型没有给出 epoch 结果
- javascript - 如何替换所有最后的html元素标签
- python - 在 URL 不包含页码的情况下,为多个页面抓取具有动态加载数据的网站
- android - 如何解决 DexArchiveBuilderException?
- flutter - 如何将参数发送到嵌入式 Flutter Web 应用程序?
- api - Swagger 错误 - 应该只有三位数的状态码