lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。
lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。
lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,但是并不意味着不能给他定义一个名字。如下所示:
add = lambda x, y : x+y
add(1,2) # 结果为3
filters=lambda x:True if x % 10 == 0 else False
print(filters(20))#结果是True
print(filters(21))#结果是False
从上面两个例子可知,lambda的格式为:lambda 参数:返回的表达式
lambda具有简洁匿名的特点,所以常常用来构造一次性使用的匿名函数,比如filter函数的过滤器:
filter函数格式如下:
filter(判断函数,待过滤的可迭代数据)
例如:
result=filter(lambda x:True if x % 11 == 0 else False, range(100))
for i in result:
print(i)
#返回:
0
11
22
33
44
55
66
77
88
99