Python `map` 和参数解包

标签 python map-function

我知道,那个

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/

相关文章:

python - 尽管有 'psycopg2.extensions',但没有名为 'psycopg2-binary' 的模块

python - 将 csv 文件读取到 pandas 失败

functional-programming - Scheme/Racket 过滤/映射多个参数

javascript - React 中的 Map 函数(err : TypeError: e. map is not a function)

Java:有 map 功能吗?

list - 如何在 Haskell 中组合过滤器和映射

python groupby行为?

python - 类中的信号处理程序

python - 如何使用 python 在数据框中将列中的每个元素移动 n 范围?

javascript - JavaScript中由map函数组成的reduce函数