我想将一个函数应用于dict
inplace 中的值dict
(就像map
在函数式编程设置中一样)。
假设我有这个dict
:
d = { 'a':2, 'b':3 }
我想将该函数divide by 2.0
应用于字典的所有值,导致:
d = { 'a':1., 'b':1.5 }
最简单的方法是什么?
我使用Python 3。
编辑:
单线会很好。这divide by 2
只是一个例子,我需要函数作为参数。
我想将一个函数应用于dict
inplace 中的值dict
(就像map
在函数式编程设置中一样)。
假设我有这个dict
:
d = { 'a':2, 'b':3 }
我想将该函数divide by 2.0
应用于字典的所有值,导致:
d = { 'a':1., 'b':1.5 }
最简单的方法是什么?
我使用Python 3。
编辑:
单线会很好。这divide by 2
只是一个例子,我需要函数作为参数。
您可能会发现乘法仍然比除法更快
d2 = {k: v * 0.5 for k, v in d.items()}
对于就地版本
d.update((k, v * 0.5) for k,v in d.items())
对于一般情况
def f(x)
"""Divide the parameter by 2"""
return x / 2.0
d2 = {k: f(v) for k, v in d.items()}
您可以遍历密钥并更新它们:
for key, value in d.items():
d[key] = value / 2
应该为你工作:
>>> d = {'a':2.0, 'b':3.0}
>>> for x in d:
... d[x]/=2
...
>>> d
{'a': 1.0, 'b': 1.5}
>>> d = { 'a': 2, 'b': 3 }
>>> {k: v / 2.0 for k, v in d.items()}
{'a': 1.0, 'b': 1.5}