512 Stimmen

Gibt es eine Möglichkeit, "if" in Pythons Lambda auszuführen?

Python 2.6 möchte ich tun:

f = lambda x: if x==2 print x else raise Exception()
f(2) #should print "2"
f(3) #should throw an exception

Das ist eindeutig nicht die Syntax. Ist es möglich, eine if en lambda und wenn ja, wie kann man das tun?

3 Stimmen

In einem Lambda kann man nicht drucken oder erhöhen. Lambdas sind nur Funktionen, Sie können stattdessen immer eine Funktion verwenden.

11 Stimmen

Ich bin anderer Meinung als Sie. Ich brauche 4 verschiedene, sehr kurze Funktionen wie die oben genannten, die in eine Liste/Wörterbuch gesetzt werden müssen, so dass ich über sie iterieren kann und auswählen, welche in jeder Iteration zu verwenden. Anstelle von vielen Zeilen Code von nur inits, vor der Iteration, selbst kann ich es auf nur 4 Zeilen von Init-Code zu bringen. Je weniger, desto besser

6 Stimmen

4 Zeilen Code sind keine lobenswerte Lösung, wenn andere Leute den Code lesen, interpretieren, verstehen und pflegen müssen. Außerdem zeigt das "print/raise"-Problem in dem Beispiel, dass dies in Lambdas nicht möglich ist und auch nicht sein sollte.

0voto

ZakS Punkte 921

Es könnte eine Überlegung wert sein np.wo

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X