Open In App

Lambda with if but without else in Python

Last Updated : 06 Oct, 2021
Comments
Improve
Suggest changes
Like Article
Like
Report

In Python, Lambda function is an anonymous function, which means that it is a function without a name. It can have any number of arguments but only one expression, which is evaluated and returned. It must have a return value.

Since a lambda function must have a return value for every valid input, we cannot define it with if but without else as we are not specifying what will we return if the if-condition will be false i.e. its else part.

Let's understand this with a simple example of lambda function to square a number only if it is greater than 0 using if but without else.

Example #1:

Python3
# Lambda function with if but without else.
square = lambda x : x*x if(x > 0)

print(square(6))

Output:

File "/home/2c8c59351e1635b6b026fb3c7fc17c8f.py", line 2
    square = lambda x : x*x if(x > 0)
                                    ^
SyntaxError: invalid syntax

The above code on execution shows SyntaxError, as we know that a lambda function must return a value and this function returns x*x if x > 0 and it does not specify what will be returned if the value of x is less than or equal to 0.

To correct it, we need to specify what will be returned if the if-condition will be false i.e. we must have to specify its else part.

Let's see the above code with its else part.

Code:

Python3
# Lambda function with if-else
square = lambda x : x*x if(x > 0) else None

print(square(4))

Output:

16

Example #2: The first code is with if but without else then second is with if-else.

Python3
# Example of lambda function using if without else
mod = lambda x : x if(x >= 0)

print(mod(-1))

Output:

File "/home/20b09bdd29e24dfe24c185cd99dfcdfa.py", line 2
    mod = lambda x : x if(x >= 0)
                                ^
SyntaxError: invalid syntax

Now, let's see it using if-else.

Python3
# Example of lambda function using if-else
mod = lambda x : x if(x >= 0) else -x

print(mod(-1))

Output:

1

Example #3: The first code is with if but without else then second is with if-else.

Python3
# Example of lambda function using if without else
max = lambda a, b : x if(a > b)

print(max(1, 2))

Output:

File "/home/8cf3856fc13d0ce75edfdd76793bdde4.py", line 2
    max = lambda a, b : x if(a > b)
                                  ^
SyntaxError: invalid syntax

Now, let's see it using if-else.

Python3
# Example of lambda function using if-else
max = lambda a, b : a if(a > b) else b

print(max(1, 2))
print(max(10, 2))

Output:

2
10

Next Article
Article Tags :
Practice Tags :

Similar Reads

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy