在Python中重命名defaultdict键

时间:2016-08-30 06:40:06

标签: python defaultdict google-speech-api

我有以下问题:我有一个名为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进行了排序,从而把它变成了一个元组列表。感谢所有帮助我解决这个问题的人!

2 个答案:

答案 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]