前言
lambda是python中一种函数定义的方法。它可以减少了代码冗余,不用费神地去命名一个函数的名字,以快速的实现某项功能,并且lambda函数还使代码的可读性更强,程序看起来更加简洁。
一、lambda函数的语法
lambda argument_list:expersion
其中,argument_list是参数列表,与python中def function的参数列表一样。expersion是一个关于参数的表达式,表达式中出现的参数需要在argument_list中有定义,并且表达式只能是单行的。
也就是说,lambda函数的表达式中不能赋值,也不能使用while、try等Python语句。所以基于这个特点,lambda函数最适合用在参数列表中。
二、常用方法
1. 将lambda函数作为参数传递给其他函数
比如结合map、filter、sorted、reduce等一些Python内置函数使用:
- filter函数
filter(lambda x:x%3==0, [1,2,3,4,5,6])
- sorted函数
a=[('b',3),('a',2),('d',4),('c',1)]
sorted(a, key=lambda x:x[0])
- map函数
squares = map(lambda x:x**2, range(5))
print(list(squares))
2.求两个列表元素的和
a = [1,2,3,4]
b = [5,6,7,8]
print(list(map(lambda x,y:x+y, a,b)))
[6,8,10,12]
Reference
https://zhuanlan.zhihu.com/p/80960485