对于dict中的每个值?

时间:2013-05-26 16:33:45

标签: python

我有一个带整数值的dict,我想对dict中的每个值执行一个操作。我想为此使用for循环,但我无法正确使用它。类似的东西:

>>>print(myDict)
{'ten': 10, 'fourteen': 14, 'six': 6}

>>>for value in myDict:
...    value = value / 2

>>>print(myDict)
{'ten': 5, 'fourteen': 7, 'six': 3}

4 个答案:

答案 0 :(得分:7)

迭代键和值:

for key, value in myDict.items():
    myDict[key] = value / 2

字典上的默认循环遍历其键,如

for key in myDict:
    myDict[key] /= 2

或者你可以使用地图或理解。

图:

myDict = map(lambda item: (item[0], item[1] / 2), myDict)

理解:

myDict = { k: v / 2 for k, v in myDict.items() }

答案 1 :(得分:4)

for k in myDict:
    myDict[k] /= 2

答案 2 :(得分:2)

使用dict.items()方法和dict comprehension

dic = {'ten': 10, 'fourteen': 14, 'six': 6}
print({k: v/2 for k, v in dic.items()})

输出:

{'ten': 5.0, 'six': 3.0, 'fourteen': 7.0}

答案 3 :(得分:0)

Python 3:

>>> my_dict = {'ten': 10, 'fourteen': 14, 'six': 6}
>>> for key, value in my_dict.items():
       my_dict[key] = value / 2
>>> my_dict
{'fourteen': 7.0, 'six': 3.0, 'ten': 5.0}

这会更改原始字典。使用//代替/进行分配。