我知道,那个
map(function, arguments)
等价于
for argument in arguments:
function(argument)
是否可以使用 map 功能来做以下事情?
for arg, kwargs in arguments:
function(arg, **kwargs)
最佳答案
您可以使用 lambda:
map(lambda a: function(a[0], **a[1]), arguments)
或者你可以使用生成器表达式或列表推导,这取决于你想要什么:
(function(a, **k) for a, k in arguments)
[function(a, **k) for a, k in arguments]
在 Python 2 中,map()
返回一个列表(所以列表推导是等价的),在 Python 3 中,map()
是一个生成器(所以生成器表达式可以替换它)。
没有直接执行此操作的内置或标准库方法;用例太专业了。
关于Python `map` 和参数解包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16874244/