python函数-匿名函数

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))

 

posted @ 2018-01-05 20:06  某电商首席日志工程师  阅读(163)  评论(0编辑  收藏  举报