假设我有两本字典
dict1 = {(1,1,1) : ('abc'), (2,2,2) : ('def')}
dict2 = {('abc') : (1,2,3), ('def') : (4,5,6)}
生成 dict 3 的最快方法是什么
dict3 = {(1,1,1):(1,2,3), (2,2,2):(4,5,6)}
?
最佳答案
您可以使用字典理解:
dict1 = {(1,1,1) : ('abc'), (2,2,2) : ('def')}
dict2 = {('abc') : (1,2,3), ('def') : (4,5,6)}
dict3 = {k: dict2[dict1[k]] for k in dict1}
>>> print dict3
{(2, 2, 2): (4, 5, 6), (1, 1, 1): (1, 2, 3)}
这会迭代 dict1
的键,并使用 dict1
中相应的值作为键,在 dict2
中查找值。然后将 dict1
中的键和 dict2
中的值组合起来生成一个新字典。
请注意,在 Python 2 中,这应该比使用 dict1.items() 稍快一些,因为这将构建一个临时列表。类似地,迭代 dict1.iteritems() 会返回一个必须创建的迭代器,但这可以忽略不计。直接迭代字典的键也会产生最小的开销。
关于python - 如果一个字典的键等于另一个字典的值,合并两个字典的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40069059/