设为首页 收藏本站
查看: 1036|回复: 0

[新闻资讯] 小猿圈python之高阶函数lambda、map和reduce用法

[复制链接]
累计签到:3 天
连续签到:3 天
发表于 2019-7-4 18:23:38 | 显示全部楼层 |阅读模式
python有很多内置函数,内置函数封装了很多功能,让我们用起来很方便,小猿圈针对高阶函数有详细的讲解视频,朋友们可以去看看,小编学后总结了一下,下面说一下lambda、map和reduce高阶函数的用法。




1、lambda函数
lambda是匿名函数,lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值(相当于return)。
lambda语句构建的其实是一个函数对象,感受一下 lambda 匿名函数和普通函数的区别:
--普通函数:
1 def f(i):            # 用户自定义返回平方数
2    return i*i
3 print(f(2))
--匿名函数
g = lambda x : x*x    # lambda 匿名函数
print(g(2))
看出来区别了吗? lambda 函数和普通的函数相比,就是省去了函数名称,同时这样的匿名函数,不能共享在别的地方调用,也有很多别的方法能够代替lambda,那lambda函数有什么优点呢?
1. 省去定义函数的过程,快速定义单行的最小函数,让代码更加精简
2. 不需要复用的函数,无须定义函数名称
3. 和 filter map reduce 结合使用,更优雅
lambda 函数可包含多个参数,例如:
1 def f(x,y):
2    return x+y
3 print(f(1,4))
4 g = lambda x,y : x+y
5 print(g(1,4))
2、map函数
map()函数接收两个参数,一个是函数,一个是可迭代对象(Iterable),map将传入的函数依次作用到序列的每个元素,并把结果作为新的可迭代对象返回。
实例:
L=[1,2,3,4]
def pow2(x):
    return x*x
list(map(pow2,L))
运行结果:[1,4,9,16]
map和lambda匿名函数一同使用:
list(map(lambda x:x**2,[1,2,3,4,5]))#使用lambda匿名函数
3、reduce函数
reduce 函数在 3.x 版本不是内建函数了,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里,用的话要 先引入
from functools import reduce
reduce 函数中的function参数是一个有两个参数的函数,reduce依次从 sequence 中取一个元素,和上一次调用 function 的结果做参数再次调用function。
例如:
1
2 from functools import reduce                # 3.x 版本须引入
3 def sum_a(x,y):
4    return x+y
5 l = [1,2,3,4,5,6]
6 l = reduce(sum_a,l)
7 print(l)
结果:21
  l = [1,2,3,4,5,6]
  l = reduce(lambda x,y:x+y,l)                # 结合lambda
  print(l)
  help(reduce)                                # 查看 reduce 帮助
这三个个高阶函数运用的地方也很多,一般匿名函数lambda和map、filter、reduce组合用的比较多,这只是简单的用法,想要深入了解高阶函数,可以去小猿圈学习一下,alex老师讲的很透彻,小编听后做的总结Python交流群:874680195,有问题可以给小编留言,我们可以探讨学习。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-914815-1-1.html 上篇帖子: 小猿圈python之高阶函数filter和map的用法 下篇帖子: 小猿圈python之九九乘法表、金字塔和杨辉三角
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表