Is there a way to perform "if" in python's lambda

Guy picture Guy · Oct 18, 2009 · Viewed 534.1k times · Source

In python 2.6, I want to do:

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

This clearly isn't the syntax. Is it possible to perform an if in lambda and if so how to do it?

thanks

Answer

Robert Rossney picture Robert Rossney · Oct 18, 2009

The syntax you're looking for:

lambda x: True if x % 2 == 0 else False

But you can't use print or raise in a lambda.