我有以下问题:我有一个名为word_count的defaultdict,其中包含单词及其出现次数。我通过计算Google Speech API的回复来得到这个。但是,这个API为我提供了德语字母'ö'的'\ 303 \ 266'之类的内容。 现在我想通过这个词典,测试上面显示的其中一个是否存在,并用正确的东西替换它:
填写defaultdict:
for key,val in word_count:
if '\\303\\266' in key:
new = key.replace('\\303\\266', 'ö')
word_count[new] = word_count.pop(key)
到目前为止,它工作正常,我可以打印字典,它会得到带有数字的单词。
现在更换钥匙:
{{1}}
现在这不起作用,我想因为我不能弹出(键),因为它需要一个整数。我怎么会这样做?我尝试了几种方法,但似乎没有任何工作。
非常感谢任何帮助!
解决方案:
原来这是我的错,因为我对dict进行了排序,从而把它变成了一个元组列表。感谢所有帮助我解决这个问题的人!
答案 0 :(得分:1)
从讨论中了解到您正在使用元组列表而不是dict
。因此,list.pop
始终需要一个整数,这就是您收到错误的原因。
TypeError: list indices must be integers, not str
dict
期待它的关键。所以在这里你必须转换像dict
这样的输入,或者使用它的索引从列表中弹出。
答案 1 :(得分:0)
你可以这样做:
word_count['ö'] = word_count[key]
然后:
del word_count[key]