Тело лямбды должно быть выражением, которое возвращает значение. print
, будучи утверждением, ничего не возвращает, даже None
. Точно так же вы не можете присвоить результат print
переменной:
>>> x = print "hello"
File "<stdin>", line 1
x = print "hello"
^
SyntaxError: invalid syntax
Вы также не можете поместить переменное присваивание в лямбду, поскольку присваивания являются операторами:
>>> lambda y: (x = y)
File "<stdin>", line 1
lambda y: (x = y)
^
SyntaxError: invalid syntax