2009-10-11 74 views
13

可能重复:
Python “extend” for a dictionary2个Python字典如何变成1?

我知道,Python列表可以附加或扩展。有没有一种简单的方法,以两个Python字典具有独特的按键组合,例如:

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

我再想食品的一个大篮子:

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

我怎么能执行上述在Python?

+0

Dup of http://stackoverflow.com/questions/577234/python-extend-for-a-dictionary – gnud 2009-10-11 20:27:55

回答

50

的“oneliner办法”,改变不与输入类型的字典,是

basket = dict(basket_one, **basket_two) 

如果发生冲突,basket_two中的项目将覆盖basket_one中的项目。作为单线运动员,这是非常可读和透明的,并且我没有任何反对使用它的任何时候都可以使用这个混合了另外两个的词(派生出来的人很难理解它)这种方式促使他或倾听学习约dict**形式;-)。因此,例如,使用像:

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

是在我的代码中合理频繁发生。

+3

这是相当常见的,一个很好的习惯用语,大家应该知道 – 2009-10-11 21:58:43

+0

哇,这是一种非常有趣的组合方式2字典。它使用基本的Python。我很高兴在问题结束之前,这个答案已经潜入。 – 2009-10-12 02:21:30

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

(如果原来basket_one不需要保持不变,你可以离开了副本)