Python lambda if elif else

python lambda if, else & elif with multiple conditions and filter list with conditions in lambda

lambda is an one-liner python functions used to quickly built a function with ease, In this post we would see how to use if-else or multiple conditions to evaluate an expression using lambda functions.

Also, we will see how to filter a list by applying conditions in a loop and filter in lambda function

Lambda if-else & elif with multiple conditions

We can use if-else and elif and multiple conditions using lambda function in Python.

Читайте также:  My html page

Let’s take an example to understand how to use conditions in lambda

we want to assign grade based on the scores obtained in a test, here is a condition for assigning the grades:

if grade > 7: A+ elif grade >= 5 and grade  7: A else grade 5: B 

We can write this multiple conditions in lambda as shown below

grade = lambda x: 'A+' if x>7 else 'A' if x>=5 and x7 else 'B' 

Alternatively, we could also write the above conditions using lambda like as shown below

lambda x : (false,true)[Condition] 
grade = lambda score : ((((('Not sure' , 'B')[score  5]), 'A')[(score>=5 | score7)]), 'A+')[score>7] 

Conditional Statement in Lambda

We could also evaluate a statement if it’s True or False using Lambda.

Let’s verify if this condition is True or False

if grade > 7 and grade 10 or grade 5: print(True) 

Using Lambda:

We can use bitwise operator in lambda to create the condition, Here we want to verify if score is greater than 7 and less than 10 or if it is less than 5 or not

grade = lambda x: ((x>7) & (x10))| (x5) grade(12) Out: False 

Lambda else do nothing

We could also write only the if statement without an else like this

A lambda, like any function, must have a return value. Without else does not work because it does not specify what to return if not x>7

f = lambda x: x**3 if (x > 7) else None 

lambda filter list with multiple conditions

Filtering lists with lambda will return all the elements of the list that return True for the lambda function

The conditions are joined by and , they return True only if all conditions are True , and if they are joined by or , they return True when the first among them is evaluated to be True

list(filter(lambda x: (x%2==0)&(x>=5), data)) Out: [10] 

In this case the only item in list that satisfied the condition is returned

lambda evaluate list with multiple conditions inside a loop

We could also use lambda to loop over a list and evaluate a condition

Let’s define a function with all the conditions that we want to evaluate

def f(grade): if grade > 7: return 'A+' elif grade >= 5 and grade  7: return 'A' elif grade 5: return 'B' else: return False 

Will define a lambda function to map each item in the data list to this function

grade = lambda x: list(map(f, x)) 

Let’s evaluate the grade for each of the items in the data list

Updated: September 12, 2022

Share on

You may also enjoy

pandas count duplicate rows

DataFrames are a powerful tool for working with data in Python, and Pandas provides a number of ways to count duplicate rows in a DataFrame. In this article.

Pandas value error while merging two dataframes with different data types

If you’re encountering a “value error” while merging Pandas data frames, this article has got you covered. Learn how to troubleshoot and solve common issues .

How to get True Positive, False Positive, True Negative and False Negative from confusion matrix in scikit learn

In machine learning, we often use classification models to predict the class labels of a set of samples. The predicted labels may or may not match the true .

Pandas how to use list of values to select rows from a dataframe

In this post we will see how to use a list of values to select rows from a pandas dataframe We will follow these steps to select rows based on list of value.

Источник

If, Else и Elif в лямбда-функциях в Python

Лямбда-функция Python — это функция, которая определена без имени. Вместо этого анонимные функции определяются с помощью ключевого слова lambda. В этой статье мы обсудим, как использовать if, else if и else в лямбда-функциях в Python.

Синтаксис

Лямбда-функции могут иметь любое количество параметров, но только одно выражение. Это выражение оценивается и возвращается. Таким образом, лямбда-функции можно использовать везде, где требуются функциональные объекты.

См. следующий пример функции Lambda в Python.

Использование if-else в лямбда-функции

Синтаксис if-else в лямбда-функции следующий.

Например, давайте создадим лямбда-функцию, чтобы проверить, находится ли заданное значение в диапазоне от 11 до 22.

  • 15 находится между 11 и 22, поэтому возвращается True.
  • 22 не меньше 22. Поэтому возвращается False.
  • 21 находится между 11 и 22. Таким образом, он возвращает True.

Условная лямбда-функция Python без if-else

Мы можем избежать использования ключевых слов if & else и при этом добиться тех же результатов. Например, давайте изменим созданную выше лямбда-функцию, удалив ключевые слова if-else.

Мы получили тот же результат, и вы можете видеть, что мы можем написать условия без операторов if-else.

Лямбда-функция делает то же самое, что и выше, проверяет, находится ли заданное число в диапазоне от 10 до 20. Теперь давайте используем эту функцию для проверки некоторых значений.

Источник

Python : How to use if, else & elif in Lambda Functions

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

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.

lambda x : True if (x > 10 and x < 20) else False

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.

# 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))

Frequently Asked:

Creating conditional lambda function without if else

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.

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))

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
on each element. If callback() returns True then it appends that element in the new list. In the end it returns a new list of filtered elements only.

# 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)
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,

Using if, elif & else in a lambda function

Till 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.

Create a lambda function that accepts a number and returns a new number based on this logic,

  • If the given value is less than 10 then return by multiplying it by 2
  • else if it’s between 10 to 20 then return multiplying it by 3
  • else returns the same un-modified value
# 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))
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()
*** 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

Share your love

Leave a Comment Cancel Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Terms of Use

Disclaimer

Copyright © 2023 thisPointer

To provide the best experiences, we and our partners use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us and our partners to process personal data such as browsing behavior or unique IDs on this site and show (non-) personalized ads. Not consenting or withdrawing consent, may adversely affect certain features and functions.

Click below to consent to the above or make granular choices. Your choices will be applied to this site only. You can change your settings at any time, including withdrawing your consent, by using the toggles on the Cookie Policy, or by clicking on the manage consent button at the bottom of the screen.

The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.

The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.

The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.

The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.

Источник

Оцените статью