首页 > 解决方案 > 如何通过迭代一个单词来更新一个空的python字典,产生类似:{'letter in word':position of letter}?

问题描述

我正在尝试将此字符串转换为字典,以便它生成一个键值对,其中键是字母表,值是它在单词中的对应位置:示例

word = 'jazz'
word_dict = {'j':[0],'a':[1],'z':[2,3]}

这就是我想要做的:

        word = 'jazz'
        word_dict = {}
        for key, value in enumerate(word):
            dict_word = {value:key}
            print(dict_word)

上面的代码产生:

{'j': 0}
{'a': 1}
{'z': 2}
{'z': 3}

我有点卡在这里,不知道如何进一步进行,以便我可以将循环生成的这些输出更新到上面提到的字典中。我对此很陌生,因此我们将不胜感激。谢谢你。

标签: pythonpython-3.xstringdictionaryfor-loop

解决方案


您可以使用defaultdict

from collections import defaultdict

word = 'jazz'
word_dict = defaultdict(list)

for idx, chr in enumerate(word):
    word_dict[chr].append(idx)

print(word_dict)

输出:

defaultdict(list, {'j': [0], 'a': [1], 'z': [2, 3]})

结果的defaultdict行为与真正的 完全一样,但如果您出于某种原因dict需要它作为 a ,您可以调用. 但是,在任何地方 a可以工作, a都可以工作,因为它是一个子类。dictdict(word_dict)dictdefaultdict


推荐阅读