如何在 Python 中的 map 中指定参数?

Der*_*ang -1 python functional-programming map

我可以在 map 中指定其他参数吗?

例如,我有以下代码:

def f(a, b):
    return a + b
l = [1, 2, 3]
ll = map(f, l)
Run Code Online (Sandbox Code Playgroud)

我怎样才能给map上面的一个参数,以便每个元素ll是一个元素l和给定参数的总和?

例如,如果我可以使用类似的东西map(f(2,), l),我会得到[3, 4, 5]结果。

我知道我可以通过列表理解或 for 循环获得相同的结果,但我只想知道是否有可能以某种map方式做到这一点。

Bre*_*arn 5

map本身并没有直接提供一种方法来做到这一点。但是,您可以通过使用functools.partial预先指定静态参数来实现:

>>> def add(x, y):
...     return x+y
>>> map(functools.partial(add, y=10), [1, 2, 3])
[11, 12, 13]
Run Code Online (Sandbox Code Playgroud)

但是,正如@jamylak 在评论中所建议的那样,几乎没有理由这样做。如果您不想存储结果,只需执行常规 for 循环:

for item in [1, 2, 3]:
   add(item, 10)
Run Code Online (Sandbox Code Playgroud)