如何做多个参数来映射函数在python中保持不变?
问题内容:
假设我们有add
如下功能
def add(x, y):
return x + y
我们要对数组应用map函数
map(add, [1, 2, 3], 2)
语义是我想添加2到数组的每个元素。但是该map
函数也需要第三个参数中的列表。
注意:add
为了简单起见,我将示例放在此处。我原来的功能要复杂得多。当然,设置y
inadd
函数默认值的选项毫无疑问,因为每次调用都会更改它。
问题答案:
一种选择是列表理解:
[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)))