python如何把兩個字典像這樣相加?

比如一個是 a:1 b:2

另一個是a:2 c:3

相加後得到的新字典是 a:1 b:2 c:3

就是說如果原字典有這個key,就不要加進來了


好像沒那麼複雜啦,一行代碼就搞定了!

{**d2, **d1} #so pythonic!

結果截圖:


這個是這樣的思考

如果是d1 = {a: 1, b: 2} 和 d2 = {a: 2, c: 3} 合併,要保留d1 中的原有key 的值,

可以這樣,保留誰的,作為update的參數,即可。


collection 模塊的 ChainMap 是否可以滿足你的需求,它的一個好處是,不會改變原字典的值,collection 模塊的使用可以參考:Python 模塊簡介 -- collections


以前不知道有update,這樣子做過:

d3={k:d1[k] if k in d1.keys() else d2[k] for k in set(d1.keys()+d2.keys())}

其中d1,d2是原字典,d3是合併結果,如果d1,d2的鍵有重複則選擇保留d1的。


b update a


推薦閱讀:

深入淺出區塊鏈(1)介紹
Python3中PyMongo的用法
Flask+Echarts 實現動圖圖表
給妹子講python--21函數參數的匹配與解包

TAG:Python | 編程 | Python入門 | Python開發 |