给定一个函数列表(functions)和一个整数n,我正在尝试找出一种逐步组合它们并返回每个逐步结果列表的方法,如下所示:
compose_step([lambda x: x+3, lambda x: x+5, lambda x: x+1], 8) --> [8, 11, 16, 17]
目前,我已经学会如何编写函数列表并返回结果,代码如下:
def compose(functions, n):
def compose2(f,g):
return lambda x: f(g(x))
composedFunction = functools.reduce(compose2, functions, lambda x: x)
return composedFunction(n)
然而,我非常困惑如何跟踪每个步骤并将其作为列表返回。我假设我需要以某种方式使用 map 将每个逐步的部分映射到列表中。我还想出了一种方法,可以将列表中的所有函数应用于 n,如下所示:
def apply_all_functions(functions, n):
answerList = list(map(methodcaller('__call__', n), functions)))
return answerList
我在考虑如何使用composeFunction函数来组合一系列逐步函数,直到完全组合成的函数,并将其作为我的新列表用于apply_all_functions以达到预期的结果。但目前,我感到相当困惑。