从一个字典的键和另一个字典的值构建一个新的字典

时间:2016-03-10 23:25:05

标签: python dictionary

我有两本词典:

dict_1 = ({'a':1, 'b':2,'c':3})
dict_2 = ({'x':4,'y':5,'z':6})

我想从dict_1获取密钥,从dict_2获取值 并制作一个新的dict_3

dict_3 = ({'a':4,'b':5,'c':6})

2 个答案:

答案 0 :(得分:4)

您尝试做的事情是使用常规词典以任何可预测的方式无法做到的。正如@PadraicCunningham和其他人已经在评论中指出的那样,词典的顺序是任意的。

如果您仍想获得结果,则必须从头开始使用有序词典。

>>> from collections import OrderedDict
>>> d1 = OrderedDict((('a',1), ('b',2), ('c', 3)))
>>> d2 = OrderedDict((('x',4), ('y',5), ('z', 6)))
>>> d3 = OrderedDict(zip(d1.keys(), d2.values()))
>>> d3
OrderedDict([('a', 4), ('b', 5), ('c', 6)])

答案 1 :(得分:0)

您可以使用zip并将结果列表转换为dict来实现此目的:

dict(zip(dict_1.keys(), dict_2.values()))

但由于字典无序,它不会与您的预期结果相同:

{'a': 5, 'c': 4, 'b': 6}