循环字典并更改值

时间:2011-12-03 16:57:50

标签: python

假设我有一本名字和成绩的词典:

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

我希望获取字典中的所有值并为每个值添加10%:

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

如何通过字典中的所有值来完成?

4 个答案:

答案 0 :(得分:8)

Dict理解:

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

Pre 2.7:

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

答案 1 :(得分:5)

您没有要求将您的词汇替换为新词。以下代码更新现有字典。它使用基本的循环技术,这些技术和理解一样方便。

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

答案 2 :(得分:3)

对于版本小于2.7的python,您可以使用:

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() }

答案 3 :(得分:2)

{i:1.1*j for i,j in my_dict.items()}