码迷,mamicode.com
首页 > 其他好文 > 详细

匿名函数与内置函数filter()、map()、reduce()的用法

时间:2018-04-24 14:55:29      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:三元   生成式   fun   func   family   microsoft   循环   cal   size   

  首先是一个正常的函数,能够正常的传参数

def sayhi(n):
    print(n)
sayhi(3)

  匿名函数传参数:

(lambda n:print(n)) (2)
calc=lambda n:print(n)
calc(6)

#处理三元运算符
calc=lambda n:3 if n<4 else n
print(calc(1))

  注:lambda里面不能处理for循环之类的复杂运算

  lambda单独使用的不多,需要结合使用 例如:结合filter()函数

  filter()函数:一组数据里面过滤想要的结果

  从0到10,过滤大余5的数

1 res=filter(lambda n:n>5,range(10))
2 for i in res:
3     print(i)

 

  lambda与map()结合使用

1 res=map(lambda n:n*n,range(10))
2 for i in res:
3     print(i)

  map()函数是对传入的每一个值按匿名函数里面的方式进行处理(n*n),返回处理过的结果把原来的数据覆盖掉以列表的形式输出,

相当于列表生成式:[i*2 for i in range(10)或[lambda i:i*2 for i in range(10)]

 

lambda与reduce()的结合使用

import functools
res=functools.reduce(lambda x,y:x+y,range(10)) #累加:x是0,y是range里的数,x+y赋给x,依次相加
print(res)
#或是阶乘(lambda x,y:x*y,range(1,10))

 

匿名函数与内置函数filter()、map()、reduce()的用法

标签:三元   生成式   fun   func   family   microsoft   循环   cal   size   

原文地址:https://www.cnblogs.com/zhong2018/p/8929829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!