我正在写一个Python脚本,应该采取函数列表,写成lambda表达式,并返回所有函数的撰写,但是,我在脚本中有一个箭头,也许因为我使用lambda表达式的方式。这似乎即使我给返回的函数一个数字值,我回来了一个函数,而不是一个数字。这是我写的:Python的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
这是我写的函数,它说我有一个错误tast。
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
我会apreciate对这个问题的一些HALP ..这里 谢谢:)
你的第一个' assert'在表达式周围有一些虚假的括号。如果你删除了它们,那么你可能会注意到第二个'assert'中的圆括号在错误的地方。 – Duncan