lambda 函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表
达式值的函数
1、lambda 函数比较轻便,即用即仍,很适合需要完成一项功能,但是此功能只
在此一处使用,连名字都很随意的情况下;
2、匿名函数,一般用来给 filter,map 这样的函数式编程服务;
3、作为回调函数,传递给某些应用,比如消息处理
lambda函数形式:
lambda argument_list: expression
lambda函数有如下特性:
lambda函数是匿名的:所谓匿名函数,通俗地说就是没有名字的函数。lambda函数没有名字。
lambda函数有输入和输出:输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值。
lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要专门的名字来说明。
from functools import reduce
f=lambda x,y,z:x+y+z
print(f(1,2,3))
a=reduce(lambda x,y:x*y,range(1,11))
print(a)
结果如下:
6
3628800
事实上,关于lambda在Python社区是存在争议的。Python程序员对于到底要不要使用lambda意见不一致。
支持方认为使用lambda编写的代码更紧凑,更“pythonic”。
反对方认为,lambda函数能够支持的功能十分有限,其不支持多分支程序if…elif…else…和异常处理程序try …except…。并且,lambda函数的功能被隐藏,对于编写代码之外的人员来说,理解lambda代码需要耗费一定的理解成本。他们认为,使用for循环等来替代lambda是一种更加直白的编码风格。
关于lambda的争执没有定论。在实际中,是否使用lambda编程取决于程序员的个人喜好。