2015-06-17 70 views
0

我想之間查找總結兩個字典如下:的Python做2個字典

mydict = {41100: 'Health Grant', 
50050: 'Salaries', 
50150: 'Salaries', 
50300: 'Salaries'}; 
mytb = {'': '', 
41100: -3,450,200.40, 
50050: 1,918,593.96, 
50150: 97.50, 
50300: 8,570.80} 

我的輸出應該是:

{健康格蘭特:-3450200.40「工資:1927262.26}

你能與幫助編碼的循環代碼請?

+1

的[合併具有相同的鍵名Python字典]可能重複(HTTP://計算器。 com/questions/10626202/combine-python-dictionaries-that-the-same-key-name) – Sandman

+0

在尋求幫助之前,你應該嘗試創建循環。請記住,這個網站可以幫助其他人可能有相同的問題。類似這樣的事情可以在搜索「python lloops」之後完成 – kezi

+0

@Sandman問題類似,但不重複。字典有相同的密鑰,但OP想要使用第一個字典中的值作爲結果的關鍵字。 –

回答

0

只需迭代第一個字典的鍵和值,並添加第二個字典中對應於相同鍵的值。

mydict = {41100: 'Health Grant', 50050: 'Salaries', 50150: 'Salaries', 50300: 'Salaries'}; 
mytb = {'': '', 41100: -3450200.40, 50050: 1918593.96, 50150: 97.50, 50300: 8570.80} 

result = {} 
for key, value in mydict.items(): 
    result[value] = result.get(value, 0) + mytb[key] 

或者使用collections.defaultdict

from collections import defaultdict 
result = defaultdict(int) 
for key, value in mydict.items(): 
    result[value] += mytb[key] 

在這兩種情況下,result{'Health Grant': -3450200.4, 'Salaries': 1927262.26}