嗨客网搜索

Python lambda表达式

Python lambda表达式教程

Python 的 lambda 表达式也叫匿名函数,lambda 表达式简化了 函数 定义的书写形式,使代码更为简洁,使函数的定义方式更为直观,更容易理解。

实际上,lambda 表达式的本质就是匿名的、单行函数体的函数,但 lambda 表达式中的 参数 是一个 自由变量,是在运行时绑定值,而不是定义时就绑定,这跟函数的默认值参数定义是不同的。

Python lambda表达式定义详解

语法

lambda [parameter_list] : expression

参数

参数 描述
lambda 定义 lambda 表达式所使用的关键字,所有的 lambda 表达式前面都必须使用该关键字。
parameter_list 参数列表。
expression 返回值。

说明

lambda 是定义 lambda 表达式使用的 关键字,parameter_list 是 lambda 表达式的参数列表,lambda 表达式可以没有参数,也可以有多个参,如果有多个参数,则需要用逗号隔开。

expression 是 lambda 表达式的 返回值

案例

lambda表达式求和

使用 lambda 表达式求和

print("嗨客网(www.haicoder.net)") sum = lambda x, y : x + y print("lambda res =", sum(512, 512))

程序运行后,控制台输出如下:

54_python lambda表达式.png

我们定义了一个 lambda 表达式,该 lambda 表达式传入两个参数,返回这两个参数的和,同时,我们将该 lambda 表达式赋值给了变量 sum。

接着,我们直接可以通过 sum 来调用我们定义的 lambda 表达式,我们传入了两个 512,最后,返回了这两个数的和,即,我们使用 lambda 表达式实现了求和的功能。

lambda表达式参数运行时绑定

lambda 表达式参数是运行时绑定的

print("嗨客网(www.haicoder.net)") x = 10 add = lambda y : x + y x = 20 # lambda 表达式参数是运行时绑定的 print("lambda add =", add(20)) print("lambda add =", add(30))

程序运行后,控制台输出如下:

55_python lambda表达式.png

我们首先定义了一个变量 x,并赋值为 10,接着,我们定义了一个 lambda 表达式,该 lambda 表达式传入一个参数,返回这个参数与 x 的和,同时,我们将该 lambda 表达式赋值给了变量 add。

接着,我们再次给 x 赋值为 20 之后,我们通过 sum 来调用我们定义的 lambda 表达式,我们分别传入了 20 和 30,最后,我们发现程序返回了 40 和 50,而不是 30 和 40。

这是因为,lambda 表达式的参数是运行时动态绑定的,因此,我们运行程序时,其实 x 的值已经被修改为了 20,因此 lambda 表达式使用的是 20 而不是 10。

Python lambda表达式总结

Python 的 lambda 表达式也叫匿名函数,lambda 表达式简化了函数定义的书写形式,使代码更为简洁,使函数的定义方式更为直观,更容易理解。

实际上,lambda 表达式的本质就是匿名的、单行函数体的函数,但 lambda 表达式中的参数是一个自由变量,是在运行时绑定值,而不是定义时就绑定,这跟函数的默认值参数定义是不同的。Python lambda 表达式定义:

lambda [parameter_list] : expression
嗨客网顶部