python之lambda函数/表达式[通俗易懂]

2022-09-07 18:13:03 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

lambda函数也叫匿名函数,允许快速定义单行函数。通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

格式

代码语言:javascript复制
lambda argument_list: expression

lambda与def的区别

1)def创建的方法是有名称的,而lambda没有; 2)lambda会返回一个函数对象,但这个对象不会赋给一个标志符,而def则会把函数对象赋值给一个变量(函数名); 3)lambda只是一个表达式,而def是一个语句; 4)lambda表达式“:”后面只能有一个表达式,而def则可以有多个; 5)if、for、print等语句不能用于lambda中; 6)lambda一般用于定义简单的函数; 7)lambda函数不能共享给别的程序调用;

lambda使用

1、应用在函数式编程中

Python提供了很多函数式编程的特性,如:map、reduce、filter、sored等函数都支持函数做为参数,lambda函数就可以应用在函数式编程中。

代码语言:javascript复制
# 需求:将列表中的元素按照绝对值大小进行升序排列
list1 = [3,5,-4,-1,0,-2,-6]
sorted(list1, key=lambda x: abs(x))

2、应用在闭包中

如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。

闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。

代码语言:javascript复制
def get_y(a,b):
     return lambda x:a*x b
y1 = get_y(2,1)
y1(2) # 结果为5

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155933.html原文链接:https://javaforall.cn

0 人点赞