我正在编写一个 python 脚本,它应该接受一个函数列表,写成 lambda 表达式,并返回所有函数的组成,但是,我在脚本中有一个箭头,可能是因为我使用 lambda 表达式的方式. 似乎即使在我给返回的函数一个数字值之后,我也得到了一个函数,而不是一个数字。这是我写的:
def compose1(lst):
if lst == []:
return lambda x: x
else:
temp = (lst[len(lst)-1])
for i in range(len(lst)-2,-1,-1):
temp = lambda x: lst[i](temp)
return lambda x: temp
这是对我写的函数的尝试,它说我有一个错误。
f = compose1([lambda x: x+1, lambda x: x*2, lambda x: x-1])
for x in range(10):
assert (f(x) == 1 + (x - 1) * 2)
f = compose1([lambda x: x-1, lambda x: x*2, lambda x: x+1])
for x in range(10):
assert (f(x) == (x + 1) * 2) - 1
我会在这个问题上有所帮助..谢谢:)