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表达式会使程序变得更加简洁。