python中lambda匿名函数

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编程取决于程序员的个人喜好。

猜你喜欢

转载自blog.csdn.net/weixin_40612082/article/details/81456959