python有很多内置函数,内置函数封装了很多功能,让我们用起来很方便,小猿圈针对高阶函数有详细的讲解视频,朋友们可以去看看,小编学后总结了一下,下面说一下lambda、map和reduce高阶函数的用法。

1、lambda函数

lambda是匿名函数,lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值(相当于return)。

lambda语句构建的其实是一个函数对象,感受一下 lambda 匿名函数和普通函数的区别:

--普通函数:

1 def f(i): # 用户自定义返回平方数

2 return ii

3 print(f(2))

--匿名函数

g = lambda x : xx # lambda 匿名函数

print(g(2))

看出来区别了吗? lambda 函数和普通的函数相比,就是省去了函数名称,同时这样的匿名函数,不能共享在别的地方调用,也有很多别的方法能够代替lambda,那lambda函数有什么优点呢?

省去定义函数的过程,快速定义单行的最小函数,让代码更加精简

不需要复用的函数,无须定义函数名称

和 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高阶函数、map reduce 自己如何去定义_小猿圈python之高阶函数lambda、map和reduce用法...相关推荐

  1. 关于python的lambda函数、以下选项错误的是_小猿圈python之python期末考试测试题(一)...

    又快临近期末考试了,小伙伴们是不是又开始焦虑了呢?挂科怎么办?如果很幸运看到小编的文章,你就偷着乐吧,小编总结出:一般python期末考试老师们最爱考的内容,一定要好好看啊,争取做到python不挂科 ...

  2. 小猿圈python之python期末考试测试题(二)_小猿圈Python开发面试题(二)

    原标题:小猿圈Python开发面试题(二) 小猿圈Python老师继上一次python面试题一,接着更新python面试题二,同学们测试一做的怎么样呢?有没有把握呢,想要看答案的同学们,可以在小猿圈上 ...

  3. python小猿_小猿圈python简介和发展前景?

    只要朝着一个方向努力,一切都会变得得心应手.-----勃朗宁 小猿圈python简介: Python是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读 ...

  4. 如何使用python编程抢京东优惠券 知乎_小猿圈Python之实现京东秒杀功能代码

    现在电商产业的多种多样,从最早的阿里巴巴.淘宝到现在的京东等等数不胜数,你还记得的京东的秒杀功能吗?小猿圈python讲师今天就为你实现京东秒杀功能代码. #Python3.5 #coding:utf ...

  5. 频率分布直方图组距如何确定_小猿圈Python开发之绘制频率分布直方图示例

    现在人工智能越来越实用,甚至深入到千家万户,随之而来的就是python技术的火爆,今天小猿圈python讲师为你讲解一下绘制频率分布直方图示例,希望对于刚刚自学python的你有一定的帮助. 项目中在 ...

  6. php获取html中文本框内容_小猿圈Python入门之批量获取html内body内容的方法

    对于人工智能你了解有多少?你知道Python的使用吗?这个对于大部分初学者来说都是很难的,小猿圈Python讲师会每天为大家选择分享一个知识点,希望对你学习Python有所帮助,今天分享的就是批量获取 ...

  7. matlab 频率分布直方图_小猿圈Python开发之绘制频率分布直方图示例

    现在人工智能越来越实用,甚至深入到千家万户,随之而来的就是python技术的火爆,今天小猿圈python讲师为你讲解一下绘制频率分布直方图示例,希望对于刚刚自学python的你有一定的帮助. 项目中在 ...

  8. 小猿圈python金角大王_小猿圈python学习-基本数据类型

    小猿圈python学习-基本数据类型 2019-04-24 11:16:14 1点赞 6收藏 0评论 什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大, ...

  9. python绘制直方图根据不同分类_小猿圈Python开发之绘制频率分布直方图示例

    现在人工智能越来越实用,甚至深入到千家万户,随之而来的就是python技术的火爆,今天小猿圈python讲师为你讲解一下绘制频率分布直方图示例,希望对于刚刚自学python的你有一定的帮助. 项目中在 ...

最新文章

  1. 写给程序员的 HR 面试指南,助你踢好面试的临门一脚!
  2. Java自带的常用工具
  3. Silverlight:使用Storyboard控制动画--控制动画事件交互
  4. windows 2008 r2 AD密码策略
  5. Gephi 入门使用
  6. 导线怎么用计算机平差,在计算机上实现导线网的自动条件平差
  7. 学习笔记(3):SAP S4 HANA财务模块入门到精通-供应商自动付款的操作-Fiori
  8. Mongodb安装详解及mongochef视图工具安装。
  9. 电子计算机音乐乐谱aliez,aLIEz(核爆神曲)吉他谱(图片谱,指弹)_泽野弘之(澤野弘之 / さわの ひろゆき / Hiroyuki Sawano)...
  10. 基于Python的无参考图像质量评价
  11. wxpython 显示mdi界面_wxPython中Icon, MDI, HtmlWindow使用示例
  12. 10年程序员私单的经历,送你3个找客户的关键技巧
  13. Vue data 中随意更改一个属性,视图都会被更新吗?
  14. excel表计算机实践操作,Excel电子表格计算机实践任务书.ppt
  15. 147. Python语言 的 Flask框架项目前导 之 Flask数据库 第三章 :SQLAlchemy-ORM 介绍
  16. wps多人协作后怎么保存_wps在线协作,多人实时填表,数据统计方法
  17. go语言自动化编写word
  18. 我的奇思妙想机器人消防员_我的奇思妙想机器人作文500字
  19. 如何批量对 PDF 文档进行优化与高效的压缩?
  20. 4g上网卡托 linux,4G无线上网卡 联通电信WCDMA 4G/3G上网卡托 4Gdongle 支持

热门文章

  1. 刚刚上班才回来,今天和你说说hash数组
  2. Leetcode--820:单词的压缩编码(java)
  3. 计算机操作系统——经典进程的同步问题
  4. html 点击div 改变高度,HTML / CSS将div设置为同级的高度
  5. android 下载器布局,Android Studio下载约束布局失败
  6. 合泰单片机做电压表_启士 | 蓝桥杯零基础单片机教程9 I2C介绍(上)
  7. 线程停止继续_晓龙吊打面试官系列: 如何优雅的停止一个线程
  8. QT的QStackedLayout
  9. 深度学习时出现的一些安装问题+ubuntu apt的一些问题+github release文件加速
  10. 安卓逆向_22( 一 ) --- Xposed【 Android Studio + Xposed 实现简单的 hook 】