我试图在Python中使用reduce,但我发现我需要调用的函数有2个参数。
我有办法传递其中一个参数,但是没有通过第一个参数吗?
喜欢这样
b = 10
reduce(foo, range(20), 0)
def foo(a, b):
return a + b
答案 0 :(得分:0)
答案 1 :(得分:0)
在您的情况下,您不需要显式传递零:
print reduce(foo, range(20))
输出:
190
您问题的另一种解释是,对于foo(a, b)
方法,您希望a
始终为10.
如果是这种情况,那么您不是在寻找{{1} } - 你正在寻找reduce
。并且您可以通过包装map
方法来实现“将其中一个参数设置为'固定'”行为
foo
输出:
def wrapper(f, a):
def x(b):
return f(a, b)
return x
def foo(a, b):
return a+b
print map(wrapper(foo, 10), range(11))