我正在尝试将此字符串转换成字典,以便产生一个键-值对,其中“键”是字母,“值”是其在单词中的对应位置:示例
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}
我有点卡在这里,不知道如何进一步进行操作,因此我可以如上所述将循环生成的这些输出更新为字典。我对此很陌生,因此将不胜感激。 谢谢。
答案 0 :(得分:1)
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
完全一样,但是由于某种原因如果您需要将其作为dict
,则可以调用dict(word_dict)
。但是,在dict
可以工作的任何地方,defaultdict
都是子类,因此可以工作。
答案 1 :(得分:0)
这是您要寻找的吗?
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]}
答案 2 :(得分:0)
您正在寻找的东西在工作吗?
请检查此代码。
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)