Mic*_*Mic 9 python dictionary functional-programming map
我想将函数应用于dictinplace中的值dict(如map在函数式编程设置中).
假设我有这个dict:
d = { 'a':2, 'b':3 }
Run Code Online (Sandbox Code Playgroud)
我想将该函数divide by 2.0应用于dict的所有值,导致:
d = { 'a':1., 'b':1.5 }
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么?
我使用Python 3.
编辑:
单行会很好.这divide by 2只是一个例子,我需要函数作为参数.
Rei*_*ica 15
您可以循环键并更新它们:
for key, value in d.items():
d[key] = value / 2
Run Code Online (Sandbox Code Playgroud)
Joh*_*ooy 13
您可能会发现乘法仍然比分频快
d2 = {k: v * 0.5 for k, v in d.items()}
Run Code Online (Sandbox Code Playgroud)
对于原位版本
d.update((k, v * 0.5) for k,v in d.items())
Run Code Online (Sandbox Code Playgroud)
对于一般情况
def f(x)
"""Divide the parameter by 2"""
return x / 2.0
d2 = {k: f(v) for k, v in d.items()}
Run Code Online (Sandbox Code Playgroud)
应该适合你:
>>> d = {'a':2.0, 'b':3.0}
>>> for x in d:
... d[x]/=2
...
>>> d
{'a': 1.0, 'b': 1.5}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19896 次 |
| 最近记录: |