Несколько вещей, чтобы распаковать здесь.Ваша функция get_lambda()
, как упомянуто chepner, не имеет оператора return.Вместо этого используйте что-то вроде этого:
def get_lambda():
return lambda x: x**2
f = get_lambda()
Следующая проблема заключается в том, что ваша лямбда-функция принимает число и выводит его квадрат - он не работает с кортежами!Чтобы применить его ко всему списку, вы можете использовать встроенную функцию map
, например:
out = map(f, (1,2,3,4))
print(tuple(out)) # prints (1, 4, 9, 16)
В качестве альтернативы, вы можете переписать свою лямбду для применения к итерируемым объектам (таким как списки икортежи):
def get_lambda():
return lambda tup: (i**2 for i in tup)
f = get_lambda()
out = f((1,2,3,4))
print(tuple(out))