2009-10-11 71 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不需要保持不變,你可以離開了副本)