在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数。
一个语法:
lambda argument_list: expression
argument_list和 expression由用户自定义。
冒号前是参数,可以有多个,用逗号隔开,冒号右边是函数体的返回值
1、这里的argument_list是参数列表,它的结构与Python中函数(function)的参数列表是一样的。
2、这里的expression是一个关于参数的表达式。表达式中出现的参数需要在argument_list中有定义,并且表达式只能是单行的。
三个特性:
1、lambda函数是匿名的:所谓匿名函数,通俗地说就是没有名字的函数。lambda函数没有名字。
2、lambda函数有输入和输出:输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值。
3、lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要专门的名字来说明。
四个用法:
本质上只有一种用法,那就是定义一个lambda函数。(filter函数、sorted函数、map函数、reduce函数)
1、将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数。
2、将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换。
3、将lambda函数作为其他函数的返回值,返回给调用者。
4、将lambda函数作为参数传递给其他函数。