【转】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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vs2012 MinGW 编译ffmeg 引用外部库libx264,librtmp[通俗易懂]

    vs2012 MinGW 编译ffmeg 引用外部库libx264,librtmp[通俗易懂]VS2012如何编译ffmpeg前面已经有文章讲过,本来主要讲述如何引用外部库libx264,librtmp,ffmpeg版本是3.0.2。1.下载x264源文件并编译源码地址是http://www.videolan.org/developers/x264.html。l…

    2022年9月17日
    4
  • 图像尺度空间理论_16位灰度图像

    图像尺度空间理论_16位灰度图像《SIFT原理与源码分析》系列文章索引:http://blog.csdn.net/xiaowei_cqu/article/details/8069548尺度空间理论自然界中的物体随着观测尺度不同有不同的表现形态。例如我们形容建筑物用“米”,观测分子、原子等用“纳米”。更形象的例子比如Google地图,滑动鼠标轮可以改变观测地图的尺度,看到的地图绘制也不同;还有电影中的拉

    2022年10月9日
    0
  • 什么是弱网测试?为什么要进行弱网测试?怎么进行弱网测试?「建议收藏」

    什么是弱网测试?由于处在移动互联网盛行的时代,网络形态除了有线连接外,还有2G/3G/4G/Wifi/5G等多种手机网络连接方式。首先额外补充一些5G的知识;2分钟了解什么是5G。在前不久结束的MWC2018上,5G成了全球的一个热门话题,而国内对5G的关注度也是异常地高。实际上,与2G、3G、4G相比,我国在5G方面的布局并不晚于其他国家;而且中国三大运营商在中国5…

    2022年4月8日
    73
  • solr删除索引_solr索引迁移

    solr删除索引_solr索引迁移http方式删除某个core下的所有索引其中collection_test是这个core的名称http://127.0.0.1:8983/solr/collection_test/update/?stream.body=*:*&stream.contentType=text/xml;charset=utf-8&commit=true

    2025年7月17日
    6
  • 详解RocketMQ不同类型的消费者

    详解RocketMQ不同类型的消费者

    2021年6月7日
    170
  • matlab逆变的参数设计,基于Matlab的孤立逆变电源设计方案 – 全文

    matlab逆变的参数设计,基于Matlab的孤立逆变电源设计方案 – 全文基于Matlab软件平台,采用双环控制策略设计的逆变源,利用Matlab-Simulink-SimPowerSystems的工具箱进行建模仿真,验证了本文所设计方案的可行性和有效性。0引言随着太阳能、风能等可再生能源的发展,分布式发电以其环境污染少、能源综合利用率高、供电可靠等优点,逐渐成为了各国家竞相研究的热点,在美国、欧洲等技术成熟的国家和地区,以将其广泛应用在微电网中。逆变电源作为一种有效…

    2022年6月11日
    67

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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