【转】python中的map,filter,reduce,lambda

【转】python中的map,filter,reduce,lambda

Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力!

filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:

>>> def f(x): return x % 2 != 0 and x % 3 != 0 >>> filter(f, range(2, 25)) [5, 7, 11, 13, 17, 19, 23]

>>> def f(x): return x != ‘a’ >>> filter(f, “abcdef”) ‘bcdef’

map(function, sequence) :对sequence中的item依次执行function(item),见执行结果组成一个List返回:

>>> def cube(x): return x*x*x >>> map(cube, range(1, 11)) [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]

>>> def cube(x) : return x + x … >>> map(cube , “abcde”) [‘aa’, ‘bb’, ‘cc’, ‘dd’, ‘ee’]

另外map也支持多个sequence,这就要求function也支持相应数量的参数输入:

>>> def add(x, y): return x+y >>> map(add, range(8), range(8)) [0, 2, 4, 6, 8, 10, 12, 14]

reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和:

>>> def add(x,y): return x + y >>> reduce(add, range(1, 11)) 55 (注:1+2+3+4+5+6+7+8+9+10)

>>> reduce(add, range(1, 11), 20) 75 (注:1+2+3+4+5+6+7+8+9+10+20)

lambda:这是Python支持一种有趣的语法,它允许你快速定义单行的最小函数,类似与C语言中的宏,这些叫做lambda的函数,是从LISP借用来的,可以用在任何需要函数的地方: >>> g = lambda x: x * 2 >>> g(3) 6 >>> (lambda x: x * 2)(3) 6

转载于:https://www.cnblogs.com/lzhitian/archive/2013/01/18/2867010.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110227.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Mac 开启apache PHP

    Mac 开启apache PHP命令行:开启apache服务:sudoapachectlstart停止apache服务:sudoapachectlstop重启服务:sudoapachectlrestart查看版本:httpd-v开启之后打开浏览器输入:localhost,看到Itworks!说明服务正常开启!命令行打开系统隐藏目录:open/etc/apache21.httpd

  • 程序员联合开发网chaijiabai_程序员开发手册

    程序员联合开发网chaijiabai_程序员开发手册 程序员创业指导书本文转自http://www.programsalon.com/whydo.asp

    2022年10月31日
  • server 2003 (NTFS) 安装完 VS.NET 2003 后调试ASP.NET APP出错

    server 2003 (NTFS) 安装完 VS.NET 2003 后调试ASP.NET APP出错

  • matlab画圆的命令_matlab画圆

    matlab画圆的命令_matlab画圆要画圆的话只需要将曲率设置成1就行了。注意‘Curvature‘,[0.5,0.8]后面的两个参数[0.5,0.8]分别表示两个边的曲率。画一个圆试试,输入命令如下:rectangle(‘Position‘,[0,0,1,1],‘Curvature‘,[1,1]),axisequal;4.直接画圆已经可以了,下一步就是指定圆形坐标和半径了。我们不妨先分析一下:1.rectangle函数本来画的是…

  • pycharm怎么逐步调试_pycharm的debug失效

    pycharm怎么逐步调试_pycharm的debug失效前言Debug调试,是一项学习编程人员的重要技能。只有当你学会debug了以后,才可以正确的知道程序的走向流程是如何的,今天就来给大家介绍一下pycharm中的debug功能!debug的前世在正式讲解之前,先来了解下debug这个词的由来,就像我们初学Python时,先要了解下它历史的由来。1937年,美国青年霍华德·艾肯找到IBM公司为其投资200万美元研制计算机,第一台成品…

  • batchnormalization是什么意思_batchnorm层参数个数

    batchnormalization是什么意思_batchnorm层参数个数1.背景本篇博文主要讲解2015年深度学习领域,非常值得学习的一篇文献:《BatchNormalization:AcceleratingDeepNetworkTrainingbyReducingInternalCovariateShift》,这个算法目前已经被大量的应用,最新的文献算法很多都会引用这个算法,进行网络训练,可见其强大之处非同一般啊。近年来深度学习捷报连连…

    2022年10月14日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号