Python: Conditional Statement with lambda

Suppose that we have a conditional statement:

In Python, we can write it in three ways:

f = lambda x: x > 2 and (x + 1) or 0

or

f = lambda x: 0 if x <= 2 else (x + 1)

or

f = lambda x: [x + 1, 0][x <= 2]

However, if the number of conditions if more than 2, it is best to use the first method.

For example, consider this conditional statement:

The Python code is like below:

f = lambda x: (x >= 5 and x+1) or \
   ( (x < 5 and x > 2) and 3 ) or 0

We read it as:

if x >= 5, f(x) = x + 1
else, if 2 < x < 5, f(x) = 3
else, f(x) = 0

If you liked this post, these other posts might also be interesting to you:

Spread/Promote this post.

Digg | Del.icio.us | Stumble | Y! MyWeb | Y! Buzz | Fave It! | Reddit
Tags: , ,
Category: Python  |  Comment (RSS)  |  Trackback

Leave a comment