В питона 2,6, я хочу сделать:Есть ли способ, чтобы выполнить «если» в лямбда питона
f = lambda x: if x==2 print x else raise Exception()
f(2) #should print "2"
f(3) #should throw an exception
Это явно не синтаксис. Можно ли выполнить if
в lambda
, и если да, то как это сделать?
благодаря
Вы не можете распечатать или поднять в лямбда. Lambdas - это просто функции, вы можете использовать функцию вместо этого. –
Я не согласен с вами. Мне нужны 4 разные, очень короткие функции, такие как выше, которые нужно поместить в список/словарь, чтобы я мог перебирать их и выбирать, какие из них использовать на каждой итерации. Вместо многих строк кода только inits, перед итерацией, я могу довести ее до 4 строк кода init. Чем меньше веселее .. – Guy
4 строки кода не похвальные решения, когда другие люди должны читать, интерпретировать, понимать и поддерживать код.Кроме того, проблема «print/raise» в примере показывает это, которое невозможно и не должно делать в лямбдах. –