python中的lambda表达式

2022-10-24 14:17:48 浏览数 (1)

lambda表达式也叫做匿名函数。通常在需要一个函数但又不想费神去定义它的时候。

简单的一个例子:

代码语言:javascript复制
def add(x, y):
    return x y

lambda x, y: x y

这就是求x y用普通方法定义函数和用lambda表达式的区别。lambda表达式没有函数名,x, y 与定义一般函数时括号中的参数一致,‘:’右边的是要返回的值。lambda表达式不需要用”return”关键字返回内容,函数默认会返回”:”右边的值。注意例子中的lambda表达式没有函数名

我们还可以把lambda表达式赋值给变量

代码语言:javascript复制
f = lambda x, y: x y

z = f(1, 2)
print(z)

执行结果如下:

代码语言:javascript复制
3

既然lambda表达式没有函数名,那在什么时候会用到lambda表达式呢?

1.程序只执行一次,不需要定义函数名,使用lambda表达式方便定义,且节省了内存中变量的定义

2.在某些函数中必须以函数作为参数,但是函数本身十分简单而且只在一处使用。

例如下面的代码:

代码语言:javascript复制
l1 = [1, 2, 3, 4, 5, 6, 7, 8]
l2 = [item for item in filter(lambda x:x > 5, l1)]
print(l2)

执行结果如下:

代码语言:javascript复制
[6, 7, 8]

filter作为python的内置函数,用于过滤序列,即过滤掉不需要的元素。filter函数的第一个参数需要传入另一个函数,传入的函数用来作为筛选条件,满足条件的返回”True”,否则返回”False”。在这个例子中使用lambda表达式会使程序变得更加简洁。

0 人点赞