1,匿名函数,故名思意,就是没有名字的函数。
def fun(x): return x+x
上述代码的作用就是求x+x的和的函数。如果调用该函数的话,可以使用fun(1)即可。那么lambda函数和上面的这个函数有什么关系?
r = lambda x:x+x r(1)
这个r接受的是一个函数对象,再将值1给函数处理。
这里的x表示的是函数接受的参数(x)。:后面的表示的是函数的返回值。(return x+x)
可以发现,2个函数达到的效果是一样的。区别在于上面的函数是有函数名的,下面的函数是没有函数名的。
2,匿名函数的好处
1,可以是代码更加简洁
2,可以不用为取函数名而烦恼
3,匿名函数经常与高阶函数一起使用。
3.0,feilter函数,过滤函数,保留返回True的元素。
获取列表中的偶数
a=[2,3,4,6,7] print filter(lambda x:x%2==0,a)
3.1,map 将可迭代的对象的每个元素都作用函数,最后返回列表。
将列表中的元素都减1
a=[2,3,4,6,7] print map(lambda x:x-1,a)
3.2,reduce 需要传入2个参数,一般用于累加或者累乘。(python3版本不存在!)
获取列表中元素的和
a=[2,3,4,6,7] print reduce(lambda x,y:x+y,a)
3.3 sorted 排序函数
d = dict(a=100,b=10,c=20,d=11) print(d) print(d.items()) print(sorted(d.items(),key =lambda d:d[0],reverse=False))