小猿圈python之高阶函数lambda、map和reduce用法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了小猿圈python之高阶函数lambda、map和reduce用法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2040字,纯文字阅读大概需要3分钟。
内容图文
![小猿圈python之高阶函数lambda、map和reduce用法](/upload/InfoBanner/zyjiaocheng/813/38f8bbf9ddb5473d9a14f31fca5b5dfd.jpg)
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之高阶函数lambda、map和reduce用法全部内容,希望文章能够帮你解决小猿圈python之高阶函数lambda、map和reduce用法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。