如何通过迭代一个单词来更新一个空的python字典,该单词产生如下结果:{';单词中的字母';:字母的位置}?

如何通过迭代一个单词来更新一个空的python字典,该单词产生如下结果:{';单词中的字母';:字母的位置}?,python,python-3.x,string,dictionary,for-loop,Python,Python 3.x,String,Dictionary,For Loop,我试图将这个字符串转换成一个字典,这样它会生成一个键值对,其中键是字母表,值是它在单词中的对应位置:example 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}

我试图将这个字符串转换成一个字典,这样它会生成一个键值对,其中键是字母表,值是它在单词中的对应位置:example

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}
我有点被困在这里,不知道如何进一步进行,以便我可以将循环生成的这些输出更新到上面提到的字典中。我是一个新手,所以任何帮助都将被感激。
谢谢。

这就是你要找的吗

word = 'jazz'
word_dict = {}

for key_as_value, value_as_key in enumerate(word):
    if value_as_key in word_dict:
        word_dict[value_as_key].append(key_as_value)
    else:
        word_dict[value_as_key] = [key_as_value]

print(word_dict)

# below is the output
{'j': [0], 'a': [1], 'z': [2, 3]}
你可以:

输出:

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

生成的
defaultdict
与实际的
dict
完全相同,但是如果出于某种原因需要它作为
dict
,您可以调用
dict(word\u dict)
。但是,无论什么地方,
dict
都可以工作,而
defaultdict
作为一个子类也可以工作。

这就是您要寻找的工作吗?
请检查这个代码

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

非常感谢,这是比较可读的,感谢您的帮助!然而,我得到了这个错误---------------------------------------------类型错误回溯(最近一次调用最后一次)在()--->1 word\u dict=defaultdict(list)2 3 for idx,char in enumerate(word):4 word\u dict[char].append(idx)5 TypeError:第一个参数必须是可调用的或None@KarthikBhaktha出现此错误是因为代码中的其他地方有一个名为
list
的变量,它覆盖了内置的。请检查您的变量名,然后重试该代码。不幸的是,它没有产生我要的输出
word = 'jazz'
word_dict = {}
for key, value in enumerate(word):
    dict_word = {value:key}
    word_dict.update(dict_word)
    print(dict_word)
print (word_dict)