Я пишу скрипт на Python, который должен принимать список функций, написанных в виде лямбда-выражений, и возвращать состав всех функций, но у меня есть стрелка в скрипте, возможно, из-за того, как я использую лямбда-выражение. . Похоже, что даже после того, как я передаю возвращаемой функции числовое значение, я получаю функцию, а не число. Вот что я написал:
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
Я был бы признателен за помощь в решении этой проблемы .. спасибо :)
assert
есть несколько ложных скобок вокруг выражения. Если вы их удалили, вы также можете заметить, что скобки во второмassert
находятся не на том месте. - person Duncan   schedule 17.05.2013