如何将2个Python词典变为1?

时间:2009-10-11 20:24:09

标签: python merge dictionary

  

可能重复:
  Python “extend” for a dictionary

我知道可以追加或扩展Python列表。是否有一种简单的方法可以将两个Python词典与唯一键组合在一起,例如:

basket_one = {'fruit': 'watermelon', 'veggie': 'pumpkin'}
basket_two = {'dairy': 'cheese', 'meat': 'turkey'}

然后我想要一大篮子的食物:

basket = {
    'fruit': 'watermelon', 
    'veggie': 'pumpkin', 
    'dairy': 'cheese', 
    'meat': 'turkey'
}

如何在Python中执行上述操作?

2 个答案:

答案 0 :(得分:53)

“oneliner方式”,不改变任何输入词,是

basket = dict(basket_one, **basket_two)

如果发生冲突,basket_two中的项目将覆盖basket_one中的项目。作为单行人员,这是非常可读和透明的,并且我没有任何强制反对使用它的任何时候一个混合的两个其他人派上用场(任何难以理解它的读者实际上将得到很好的服务提示他或听到学习dict**形式的方式;-)。因此,例如,使用如下:

x = mungesomedict(dict(adict, **anotherdict))

在我的代码中经常出现。

答案 1 :(得分:7)

basket = basket_one.copy()
basket.update(basket_two)

(如果原始basket_one不需要保持原样,你可以省略副本)