我想兩個庫相結合,以產生這樣的結果:字典中合併詞典及增加值
a = {"cat": 3, "dog": 4, "rabbit": 19, "horse": 3, "shoe": 2}
b = {"cat": 2, "rabbit": 1, "fish": 9, "horse": 5}
ab = {"cat": 5, "dog": 4, "rabbit": 20, "horse": 8, "shoe": 2, "fish": 9}
所以,如果他們有相同的鍵,值將被添加,如果一個關鍵是出現在一個詞典中而不是另一個詞典中,它會將其添加到具有相應值的新詞典中。
這兩個字典也都嵌套在單獨的字典,以及使得:
x = {'a': {"cat": 3, "dog": 4, "rabbit": 19, "horse": 3, "shoe": 2}, 'c': blah, 'e': fart}
y = {'a': {"cat": 2, "rabbit": 1, "fish": 9, "horse": 5}, 'c': help, 'e': me}
鍵是在兩個主字典相同的。
我一直在試圖將兩個庫合併:
def newdict(x,y):
merged= [x,y]
newdict = {}
for i in merged:
for k,v in i.items():
new.setdefault(k,[]).append(v)
這一切使我是屬於列表中的相同的密鑰值的字典。我無法弄清楚如何遍歷一個鍵的兩個列表並將這些值一起添加來創建一個聯合字典。誰能幫我?
最終結果應該是這樣的:
xy = {'a' = {"cat": 5, "dog": 4, "rabbit": 20, "horse": 8, "shoe": 2, "fish": 9}, 'c': blah, 'e': me}
的「c」和「E」鍵我將必須遍歷並執行基於從「A」的結果的不同的計算。
我希望我能夠清楚地解釋我的問題。
感謝您的快速回復,但是我不允許導入任何函數,所以我一直在試圖找到一種方法來編寫代碼來手動實現計數。有任何想法嗎? – user3027711
我已經添加了一些提示,可以幫助您自行解決問題。 – stranac