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:

Here is the Python code:

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

Related

This entry was posted in Python and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>