Python 如何使用列表理解构建以下词典?
你好,我有以下字典:Python 如何使用列表理解构建以下词典?,python,python-3.x,dictionary,list-comprehension,Python,Python 3.x,Dictionary,List Comprehension,你好,我有以下字典: vocabulary = {'car': 1, 'read': 3, 'yellow': 2} weight = [23,445,56] 我想将第一个字典与权重列表联系起来,如下所示,car这个词的权重是23,因为键car的值是一,单词read的权重是56因为是列表权重的3个位置,最后黄色的权重是2,因为445位于列表的第二个位置,因此我希望的输出是: vocabulary_weight = {'yellow':445,'read':56,'car':23} 我试过
vocabulary = {'car': 1, 'read': 3, 'yellow': 2}
weight = [23,445,56]
我想将第一个字典与权重列表联系起来,如下所示,car
这个词的权重是23
,因为键car
的值是一,单词read
的权重是56
因为是列表权重的3个位置,最后黄色的权重是2,因为445
位于列表的第二个位置,因此我希望的输出是:
vocabulary_weight = {'yellow':445,'read':56,'car':23}
我试过:
vocabulary_weight = {key: value for (vocabulary.keys(), weight[vocabulary.value()] )
in vocabulary}
但我得到了:
File "<ipython-input-7-471237aaf624>", line 7
vocabulary_weight = {key: value for (vocabulary.keys(), weight[vocabulary.value()] ) in vocabulary}
^
SyntaxError: can't assign to function call
文件“”,第7行
词汇表_权重={key:value for(词汇表中的词汇表.keys(),权重[词汇表.value()])}的值
^
SyntaxError:无法分配给函数调用
因此,我希望获得支持以获得所需的输出,感谢您的支持,您可以迭代词汇表.items()
这将为您提供键和值作为元组。使用键、值
解包到,并使用值-1
作为列表的索引:
>>> vocabulary = {'car': 1, 'read': 3, 'yellow': 2}
>>> weight = [23,445,56]
>>> vocabulary_weight = {key: weight[value - 1] for key, value in vocabulary.items()}
>>> vocabulary_weight
{'car': 23, 'read': 56, 'yellow': 445}
这应该起作用:
vocabulary = {'car': 1, 'read': 3, 'yellow': 2}
weight = [23,445,56]
vocabulary_weight = {key : weight[int(vocabulary[key]) - 1] for key in vocabulary.keys()}