我正在寫一個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