如何做多个参数来映射函数在python中保持不变?


问题内容

假设我们有add如下功能

def add(x, y):
    return x + y

我们要对数组应用map函数

map(add, [1, 2, 3], 2)

语义是我想添加2到数组的每个元素。但是该map函数也需要第三个参数中的列表。

注意:add为了简单起见,我将示例放在此处。我原来的功能要复杂得多。当然,设置yinadd函数默认值的选项毫无疑问,因为每次调用都会更改它。


问题答案:

一种选择是列表理解:

[add(x, 2) for x in [1, 2, 3]]

更多的选择:

a = [1, 2, 3]

import functools
map(functools.partial(add, y=2), a)

import itertools
map(add, a, itertools.repeat(2, len(a)))