2011-12-03 165 views
4

可以說,我有名字和成績的字典:遍歷字典和變化值

{"Tom" : 65, "Bob" : 90, "John" : 80...} 

,我希望把所有的值字典,並添加10%到每個:

{"Tom" : 71.5, "Bob" : 99, "John" : 88...} 

我怎樣才能通過字典中的所有值?

+0

鮑勃的分數是如何從90跳到110的? –

+0

這是一個錯誤。 – user1040563

回答

6

快譯通理解:

mydict = {key:value*1.10 for key, value in mydict.items()} 

前2.7:

mydict = dict(((key, value*1.10) for key, value in mydict.items())) 
3

對於Python版本低於2.7,你可以使用這個:

result = dict((k, 1.1 * v) for k, v in h.items()) 

和Python 2.7版或更高,你只需要:

result = { k: 1.1 * v for k, v in h.items() } 
4

您沒有要求將您的字典替換爲新字典。以下代碼更新您現有的字典。它使用基本的循環技術,這些技術同樣適用於知道以及理解。

for name in grade_dict: 
    grade_dict[name] *= 1.1