Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用列表理解构建以下词典?_Python_Python 3.x_Dictionary_List Comprehension - Fatal编程技术网

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()}