简介三函数:

高阶函数:一个函数可以接收另一个函数作为参数,这种函数称之为高阶函数。

filter、map、reduce三个函数都是高阶函数,且语法都一致:filter/map/reduce(func,seq),第一个参数为函数,第二个参数为可迭代对象。

下面分别介绍三个函数的功能:

•filter
filter(func,seq)为过滤函数,此函数的执行原理为将func作用于seq中的每一个元素,返回符合func筛选条件的元素的集合。

所以filter函数常常用于序列的过滤,并未对元素进行运算亦或是改变,只起到筛选的功效。并且返回一个迭代器。

 list1=range(1,31)
list(filter(lambda x:x%3==0 and x%4==0,list1))#因为filter返回iteror,用list显示结果
[12, 24, 36, 48, 60, 72, 84, 96]
由上代码,用filter筛选出list1中能同时被3和4整除的序列,第一个参数为lambda匿名参数,第二个参数为可迭代对象。 •map
map(func,seq)函数和filter函数很相似,同样是将func作用于seq中的每一个元素,但map并不是过滤,而是通过func对seq做映射。可以简单的理解为对seq中的每一个元素做加减乘除等某种运算,并返回每个运算的结果,即seq的元素数量是不变的。
 list2=range(1,11)#1到10的序列
list(filter(lambda x:x%2==0,list2))
[2, 4, 6, 8, 10]
 list(map(lambda x:x%2==0,list2))
[False, True, False, True, False, True, False, True, False, True]
由上可知,filter返回是list2中能被2整除的元素(即过滤),而map返回的是list2中每个元素能否被2整除的结果,只是把运算作用于每个元素并返回结果。
 list(map(lambda x:x*2,list2))#每个元素乘2

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

•reduce
reduce(func,seq)函数和filter、map函数很相似,同样是将func作用于seq中的元素,但是reduce是先对集合中的第 1、2 个元素进行func操作,得到的结果再与第三个数据用 func 函数运算,直到最后得到一个结果。所以reduce是对序列中元素进行累积。
 from functools import reduce#需要从functools中导入
list2=range(1,11)
reduce(lambda a,b:a+b,list2)#对序列list2中的元素做累加运算

55

总结:

相同点:1、filter、map、reduce三个函数都是将func作用于seq中的元素。

2、filter和map都是func作用每个元素,返回的是iteror。

不同点:1、filter是func作用每个元素并且筛选结果为true的元素,map是将每一个被func作用的结果都输出。

2、reduce则是先对集合中的第 1、2 个元素进行func操作,得到的结果再与第三个数据用 func 函数运算,直到最后得到一个结果。

												

Python之filter、map、reduce函数的更多相关文章

  1. 【python】filter,map,reduce和lambda函数介绍

    filter(function, iterable)map(function, iterable)reduce(function, sequence) filter将 function依次作用于ite ...

  2. Python中 filter | map | reduce | lambda的用法

      1.filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tupl ...

  3. filter map reduce函数的使用

    #filter("处理逻辑","可迭代对象") 把可迭代对象依次处理逻辑处理,如果值为真就返回值,值为假就不返回; li = ['testA','yerA',' ...

  4. Python学习(五)函数 —— 内置函数 lambda filter map reduce

    Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...

  5. Python之匿名函数(filter,map,reduce)

    参考博客:Python匿名函数详解--http://blog.csdn.net/csdnstudent/article/details/40112803 Python内建函数之——filter,map ...

  6. Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

    Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是 ...

  7. Python内置函数之filter map reduce

    Python内置函数之filter map reduce 2013-06-04 Posted by yeho Python内置了一些非常有趣.有用的函数,如:filter.map.reduce,都是对 ...

  8. Python2.7学习笔记-定义函数、filter/map/reduce/lambda

    我把写的代码直接贴在下面了,注释的不是很仔细,主要是为了自己复习时方便查找,并不适合没有接触过python的人看,其实我也是初学者. #定义函数 def my_abs(x): if x>=0: ...

  9. 高阶函数 filter map reduce

    const app=new Vue({ el:'#app', data:{ books:[{ id:1, name:"算法导论", data: '2006-1', price:39 ...

  10. python filter map reduce

    filter(function, iterable): Construct a list from those elements of iterable for which function retu ...

随机推荐

  1. postman无法正常启动

    想请教下各位大神,我电脑的postman打开之后就一直转,没法启动是怎么回事?重装了不同版本的也是同样的情况,重启电脑也没用...同样的安装包,在别的电脑上就能正常打开!有什么办法解决吗?  0 20 ...

  2. 【MyBtis】获取数据插入postgresql后返回的自增id

    问题描述 数据库采用的是postgresql,以下面的rule表为例,该表的id设置为自增,那么经常有这样的需求,在执行insert操作后,紧接着需要获取该记录的自增id往中间表中插入数据,或者是再根 ...

  3. C++ 不定参数"..."的使用

    #include <iostream> #include <cstdio> #include <cstdarg> #define LEN_MSG_BUFFER 12 ...

  4. 51Nod 1534 棋子游戏 题解

    题目 波雷卡普和瓦西里喜欢简单的逻辑游戏.今天他们玩了一个游戏,这个游戏在一个很大的棋盘上进行,他们每个人有一个棋子.他们轮流移动自己的棋子,波雷卡普先开始.每一步移动中,波雷卡普可以将他的棋子从(x ...

  5. 洛谷 P1043 数字游戏 区间DP

    题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分 ...

  6. 深入Mybatis源码——配置解析

    @ 目录 前言 正文 配置解析 1. cacheRefElement/cacheElement 2. resultMapElements 3. sqlElement 4. buildStatement ...

  7. 诊断Java线程死锁

    比如我们有运行这样一个程序: 了解多线程的小伙版都知道,这段代码不会有打印结果,因为发生了死锁.我们在服务器上运行试试,没有输出,对应的进程是 32752. 使用 “jstack 32752”排查,后 ...

  8. 二叉搜索树的后序遍历序列(剑指offer-23)

    题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 题目解析 采用分治法的思想,找到根结点.左子树的序 ...

  9. ASP.NET MVC Route详解

    在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留下来的ASPX引擎或者第三方的NVelocity模板引擎.Razor在减少代码冗余.增 ...

  10. Python List comprehension列表推导式

    http://blog.chinaunix.net/uid-28631822-id-3488324.html 具体内容需要进一步学习