Can i use if in lambda python?
In this article we will discuss how to use if , else if and else in a lambda functions in Python. Will also explain how to use conditional lambda function with filter() in python. Using if else in lambda function is little tricky, the syntax is as follows, For example let’s create
a lambda function to check if given value is between 10 to 20 i.e. Here we are using if else in a lambda function, if given value is between 10 to 20 then it will return True else it will return False. Now let’s use this function to check some values i.e. Output: Well using ‘if’ ‘else’ keywords makes things easy to understand, but in lambda we can avoid using if
& else keywords and still achieve same results. For example let’s modify the above created lambda function by removing if else keywords & also True False i.e. lambda x : x > 10 and x < 20 This lambda function does the same stuff as above i..e checks if given number lies between 10 to 20. Now let’s use this function to check some values i.e. # Lambda function to check if a given vaue is from 10 to 20. check = lambda x : x > 10 and x < 20 # Check if given numbers are in range using lambda function print(check(12)) print(check(3)) print(check(24)) Output: True False False Using filter() function with a conditional lambda function (with if else)filter() function accepts
a callback() function and a list of elements. It iterates over all elements in list and calls the given callback() function Suppose we have a list of numbers i.e. # List of numbers listofNum = [1,3,33,12,34,56,11,19,21,34,15] Now let’s use filter() function to filter numbers between 10 to 20 only by passing a conditional lambda function (with if else) to it i.e. # Filter list of numbers by keeping numbers from 10 to 20 in the list only listofNum = list(filter(lambda x : x > 10 and x < 20, listofNum)) print('Filtered List : ', listofNum) Output: Filtered List : [12, 11, 19, 15] it uses the passed lambda function to filter elements and in the end returns list of elements that lies between 10 to 20, Advertisements Using if, elif & else in a lambda functionTill now we have seen how to use if else in a lambda function but there might be cases when we need to check multiple conditions in a lambda function. Like we need to use if , else if & else in a lambda function. We can not directly use elseif in a
lambda function. But we can achieve the same effect using if else & brackets i.e. lambda Let’s see how to do that, Create a lambda function that accepts a number and returns a new number based on this logic,
# Lambda function with if, elif & else i.e. # If the given value is less than 10 then Multiplies it by 2 # else if it's between 10 to 20 the multiplies it by 3 # else returns the unmodified same value converter = lambda x : x*2 if x < 10 else (x*3 if x < 20 else x) Let’s use this lambda function, print('convert 5 to : ', converter(5)) print('convert 13 to : ', converter(13)) print('convert 23 to : ', converter(23)) Output: convert 5 to : 10 convert 13 to : 39 convert 23 to : 23 Complete example is as follows, def main(): print('*** Using if else in Lambda function ***') # Lambda function to check if a given vaue is from 10 to 20. test = lambda x : True if (x > 10 and x < 20) else False # Check if given numbers are in range using lambda function print(test(12)) print(test(3)) print(test(24)) print('*** Creating conditional lambda function without if else ***') # Lambda function to check if a given vaue is from 10 to 20. check = lambda x : x > 10 and x < 20 # Check if given numbers are in range using lambda function print(check(12)) print(check(3)) print(check(24)) print('*** Using filter() function with a conditional lambda function (with if else) ***') # List of numbers listofNum = [1,3,33,12,34,56,11,19,21,34,15] print('Original List : ', listofNum) # Filter list of numbers by keeping numbers from 10 to 20 in the list only listofNum = list(filter(lambda x : x > 10 and x < 20, listofNum)) print('Filtered List : ', listofNum) print('*** Using if, elif & else in Lambda function ***') # Lambda function with if, elif & else i.e. # If the given value is less than 10 then Multiplies it by 2 # else if it's between 10 to 20 the multiplies it by 3 # else returns the unmodified same value converter = lambda x : x*2 if x < 10 else (x*3 if x < 20 else x) print('convert 5 to : ', converter(5)) print('convert 13 to : ', converter(13)) print('convert 23 to : ', converter(23)) if __name__ == '__main__': main() Output: *** Using if else in Lambda function *** True False False *** Creating conditional lambda function without if else *** True False False *** Using filter() function with a conditional lambda function (with if else) *** Original List : [1, 3, 33, 12, 34, 56, 11, 19, 21, 34, 15] Filtered List : [12, 11, 19, 15] *** Using if, elif & else in Lambda function *** convert 5 to : 10 convert 13 to : 39 convert 23 to : 23 How do you use condition in lambda function in Python?In this instance, we'll use lambdas to define whether a specified integer is odd or even:. check_num = lambda number : print(number, 'is Even') if number%2 == 0 else print(number, ' is Odd') ... . check_num = lambda one, two : print(one,'is divisible by', two) if (one%two == 0) else print(one ,' is indivisible by ', two). Can you do Elif in lambda?Using if, elif & else in a lambda function
We can not directly use elseif in a lambda function. But we can achieve the same effect using if else & brackets i.e.
How do you use nested if else in lambda?You can have nested if else in lambda function. Following is the syntax of Python Lambda Function with if else inside another if else, meaning nested if else. value_1 is returned if condition_1 is true, else condition_2 is checked. value_2 is returned if condition_2 is true, else value_3 is returned.
Can lambda expressions contain statements?In particular, a lambda function has the following characteristics: It can only contain expressions and can't include statements in its body. It is written as a single line of execution.
|