我有两本词典:
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})
答案 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}