我编写了以下函数
def addsub(a):
def add(a):
def subtract(b):
return a-b
return subtract
return add(a)addsub(9)(4)返回5
但是如果我不知道加减法的个数,我想执行addsub(9)(3)(4)(5)。
上面的函数对它不起作用,我可以写一些通用的东西,对任何长度的输入都有效吗?
PS。我不想使用functools
发布于 2021-10-02 15:01:35
这不可能完全像你所描述的那样(使用currying)。但是,如果您想要的是将一个列表的数字与一个不同的符号相加,在我看来,这是最简单的:
import itertools
coefficients = itertools.cycle((1, -1))
numbers = [9, 3, 4, 5]
result = sum(a * c for a, c in zip(numbers, coefficients))https://stackoverflow.com/questions/66871665
复制相似问题