在这篇文章中,我们将学习如何在 Python 中使用 lambda 与 if-else 条件 。当你需要更高级的匿名函数时,将这两者搭配起来会非常有用。
任何编程语言中的条件语句都是需要学习的基本概念之一。它们的主要用途是根据所提供的条件行事。每个程序员都必须学习这些,然后再继续学习高级主题。在几乎所有的语言中,只有三个条件语句:
什么是 Python 中的 lambda 函数?
Python 中的 lambda 函数是一个 匿名函数 。使用这个概念的核心目的是它使函数的创建变得简单。
兰姆达函数的语法
variable = lambda parameters_list : expression
Lambda 语法
为了获得更多的信息,输入以下命令。
help('lambda')
我们得到以下输出
Lambdas
*******
lambda_expr ::= "lambda" [parameter_list] ":" expression
lambda_expr_nocond ::= "lambda" [parameter_list] ":" expression_nocond
Lambda expressions (sometimes called lambda forms) are used to create
anonymous functions. The expression "lambda parameters: expression"
yields a function object. The unnamed object behaves like a function
object defined with:
def <lambda>(parameters):
return expression
Note that functions created with lambda expressions cannot contain
statements or annotations.
使用lambdas,我们可以进行以下操作,以方便初学者:
其他高级操作包括:
在函数式编程中使用。
在面向对象的编程中使用。
对一个特定类的方法进行参数化。
让我们看一下λ函数的几个例子。
add = lambda a, b: a + b
print(add(5, 5))
# output: 10
这段代码很简单。我们首先创建一个lambda对象作为add。然后我们在lambda表达式里面存储两个参数。这些参数是两个数字,用于加法运算。之后在冒号里,我们把加法表达式放在冒号前面。
subtract = lambda a, b: a - b
print(add(100, 50))
# output: 50
multiply = lambda a, b: a * b
print(multiply(100, 50))
# output: 5000
使用带有if-else条件的Lambda
使用带有if-else条件的lambda是一种有用的技术。这也减少了代码的行数。现在,请注意,lambdas中的表达式部分一次只能容纳一个表达式。
在Python中使用带有if-else条件的lambda的一般语法
variable_name = lambda parameters : code_for_if if (condition) else code_for_else
语法与lambda的核心实现有一点不同。所以,只需在if 语句前声明代码,然后写上带有条件的if语句。如果需要,else块直接在if语句之后。
Lambda If Else Block
conditional_lambda = lambda x: x/100 if x < 20 else x
print(conditional_lambda(4))
# output: 0.04
我们创建一个lambda对象作为conditional_lambda。
然后,我们存储一个变量x 和表达式x/100,与之结合的是我们的条件语句。
该语句说,如果x小于20就除以100,否则按原样打印。
然后我们调用conditional_lambda函数,并在其中放置参数4。
由于4小于20,它将被除以100,在屏幕上的输出为0.04。
现在我们将研究如何利用这个函数进行其他高级运算。
例子-使用lambdas检查给定的数字是偶数还是奇数
# setup lambda
check = lambda num : print(num, 'is Even') if num%2 == 0 else print(num, ' is Odd')
# input from user
num = int(input('Enter any number: '))
a = check(num)
print(a)
>>> Enter any number: 65
65 is Odd
>>> Enter any number: -56
-56 is Even
例子使用lambdas检查给定的数字是偶数还是奇数
check = lambda a, b : print(a,'is divisible by', b) if (a%b == 0) else print(a ,' is indivisible by ', b)
a = int(input('Enter value for a: '))
b = int(input('Enter value for b: '))
obj = check(a, b)
>>> Enter value for a: 45
>>> Enter value for b: 45
45 is divisible by 45
>>> Enter value for a: 3
>>> Enter value for b: 9
3 is indivisible by 9
首先,我们定义lambda的语句。该函数有两个参数a 和b,函数名是check。
然后在if块之后。主要条件是a应该能被b整除。如果这是真的,该块将打印("a能被b整除")。但如果余数不为零,那么else块就会打印出不可分割。
然后我们创建一个函数对象作为obj ,并调用它关于check(a, b)。
这样,我们就到了这个话题的结尾。使用带有if-else条件的Lambda是保持单行代码可见性的关键话题之一。最重要的是我们不需要改变核心语法,只需要编辑我们的条件和其他东西。读者必须修改代码并多次尝试以理解代码。