2011-12-03 157 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