2017-04-13 144 views
0

感謝您的幫助!Python 3:創建字典/爲嵌套字典添加值

我儘量簡化我的問題: 我有一個嵌套的字典看起來像: 之後,我寫了一個for循環來計算嵌套字典的比例值

d={'a' :{ '1990': 10, '1991':20, '1992':30},'b':{ '1990':15, '1991':40, '1992':50}} 
for key in d: 
    rate = d[key]['1990']/d[key]['1992'] 
    print(rate) 

現在我想創建一個新的鍵值對每個嵌套的字典,因此,在年底,它看起來像:

d = {'a' :{ '1990': 10, '1991':20, '1992':30, 'rate':0.33333},'b':{ '1990':15, '1991':40, '1992':50, 'rate':0.3}} 

或創建一個新的字典看起來像:

d2 = {'a':{'rate':0.3333}, 'b':{'rate':0.3}} 

請幫助您的解決方案最簡單,我認爲加入現有的字典會更好?

謝謝!

+1

對於同一個字典,您可以在'for'循環中使用'd [key] ['rate'] = rate'。對於新字典,請事先聲明字典並在同一個循環中使用'd2 [key] ['rate'] = rate' – kuro

+0

非常感謝!它也在更大的代碼中工作! 我嘗試了.append和其他很多東西,而且解決方法非常簡單 我真的是一個noob – TDot

回答

2

您只需插入鑰匙「速度」,這有你的計算值:

d = { 
    'a' :{ '1990': 10, '1991':20, '1992':30}, 
    'b':{ '1990':15, '1991':40, '1992':50} 
} 

for key in d: 
    rate = d[key]['1990']/d[key]['1992'] 
    print(rate) 
    d[key]['rate']=rate 

print d 

僅供參考,如果你使用python2,你應該做的 rate = float(d[key]['1990'])/d[key]['1992']

+1

當我們使用Python 3 – Damien

+0

@Damien時,float部分不是必須的,我錯過了它。編輯答案。謝謝! – Squizz