最近学习到python的lambda表达式也是匿名函数, lambda不需要使用def 语句这样标准的形式定义一个函数,并不需要花很多时间去额外定义一个不常用的函数.lambda的本省就是一个长度为一行表达式,而不是一个代码块,所以不能像函数那样进行近乎无线的扩充它的语法是: 定义的名字 = lambda 参数:函数体
例如下:
1 def sum(a,b): #这是一个普通的两个变量相加的函数2 return a+b #返回值为a和b相加之和3 print(sum(1,1))
上面是一个定义一个普通函数的例子,其调用的返回值是ab之和,如果我print(sum(1,1)),那么输出的结果就是2
我们将上面的函数转换为一个lambda表达式:
sum = lambda a,b:a+b #参数和上面的函数一样传入ab两个变量,冒号后面则是返回值a+bprint(sum(1,1))
在我们转换完成之后,调用函数,传入的参数ab和之前一样都是1,下图是输出结果:
如图所见,输出结果都是一样的:2,至此,我们可以明显的发现,在同样的一个简单的两个相加之和的函数中,我们额外去定义一个函数并且调用,会比我们使用lambda繁琐一些,但是lambda表达式不能换行,只能在一行把所有的内容定义完成,所以在某些时刻,lambda是一个比重新定义一个函数更好的选择!