(1)python中的lambda

Lambda函数又称匿名函数,python中有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就可以使用lambda函数

 x和y是函数的两个参数,冒号后面的表达式是函数的返回值,你能一眼看出这个函数就是是在求两个变量的和,但作为一个函数,没有名字如何使用呢?这里我们暂且给这个匿名函数绑定一个名字,这样使得我们调用匿名函数成为可能。

 

 lambda使用场景,往往和序列有关:

1.函数式编程

 

 2.Python中最常见的filter筛选、map小刷子、reduce合并,都可以用lambda表达式来生成!

map(function,sequence):把sequence中的值当参数逐个传给function,返回一个包含函数执行结果的list。如果function有两个参数,即map(function,sequence1,sequence2)。

 

filter(function,sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回。

 

 

reduce(function,sequence):function接收的参数个数只能为2,先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给function,然后只返回一个结果。

 

 

 

3.闭包
闭包:一个定义在函数内部的函数,闭包使得变量即使脱离了该函数的作用域范围也依然能被访问到。

 

 

这里的lambda函数就是一个闭包,在全局作用域范围中,a(5)可以正常执行且返回值为6。之所以返回6是因为在add局部作用域中,变量n的值在闭包的作用使得它在全局作用域也可以被访问到。
posted @ 2020-06-30 11:07  西工大陈飞宇  阅读(184)  评论(0编辑  收藏  举报