En python 2.6, je veux faire:Y at-il un moyen d'effectuer « si » dans le lambda de python
f = lambda x: if x==2 print x else raise Exception()
f(2) #should print "2"
f(3) #should throw an exception
Ceci est clairement pas la syntaxe. Est-il possible d'effectuer un if
dans lambda
et si oui comment le faire?
grâce
Vous ne pouvez pas imprimer ou élever dans un lambda. Les Lambdas ne sont que des fonctions, vous pouvez toujours utiliser une fonction à la place. –
Je ne suis pas d'accord avec vous. J'ai besoin de 4 fonctions différentes, très courtes comme celle ci-dessus, qui doivent être mises dans une liste/un dictionnaire pour pouvoir les parcourir et sélectionner celles qui seront utilisées dans chaque itération. Au lieu de nombreuses lignes de code de juste inits, avant l'itération, je peux l'abaisser à seulement 4 lignes de code init. Moins on est de fous. – Guy
4 lignes de code ne sont pas une solution louable quand d'autres personnes doivent lire, interpréter, comprendre et maintenir le code.En outre, le problème "print/raise" dans l'exemple montre ce qui ne peut pas et ne devrait pas être fait dans lambdas. –