Python之filter、map、reduce函数
简介三函数:
高阶函数:一个函数可以接收另一个函数作为参数,这种函数称之为高阶函数。
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函数的更多相关文章
- 【python】filter,map,reduce和lambda函数介绍
filter(function, iterable)map(function, iterable)reduce(function, sequence) filter将 function依次作用于ite ...
- Python中 filter | map | reduce | lambda的用法
1.filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tupl ...
- filter map reduce函数的使用
#filter("处理逻辑","可迭代对象") 把可迭代对象依次处理逻辑处理,如果值为真就返回值,值为假就不返回; li = ['testA','yerA',' ...
- Python学习(五)函数 —— 内置函数 lambda filter map reduce
Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...
- Python之匿名函数(filter,map,reduce)
参考博客:Python匿名函数详解--http://blog.csdn.net/csdnstudent/article/details/40112803 Python内建函数之——filter,map ...
- Python经常使用内置函数介绍【filter,map,reduce,apply,zip】
Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是 ...
- Python内置函数之filter map reduce
Python内置函数之filter map reduce 2013-06-04 Posted by yeho Python内置了一些非常有趣.有用的函数,如:filter.map.reduce,都是对 ...
- Python2.7学习笔记-定义函数、filter/map/reduce/lambda
我把写的代码直接贴在下面了,注释的不是很仔细,主要是为了自己复习时方便查找,并不适合没有接触过python的人看,其实我也是初学者. #定义函数 def my_abs(x): if x>=0: ...
- 高阶函数 filter map reduce
const app=new Vue({ el:'#app', data:{ books:[{ id:1, name:"算法导论", data: '2006-1', price:39 ...
- python filter map reduce
filter(function, iterable): Construct a list from those elements of iterable for which function retu ...
随机推荐
- vue全家桶(2.4)
3.6.重定向和别名 3.6.1.重定向 路由重定向通俗的说就是从一个路由重新定位跳转到另一个路由,例如:访问的 "/a" 重定向到"/b" 重定向也是通过配置 ...
- sql:主键(primary key)和唯一索引(unique index)区别
主键一定是唯一性索引,唯一性索引并不一定就是主键. 所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引. 因为主键可以唯一标识某一行记录,所以可以确保执行数据 ...
- Glusterfs读写性能测试与分析
一.测试目的: 1.测试分布卷(Distributed).分布式复制卷(Distributed-Replicate).条带卷(Strip)和分布式条带复制卷(Distributed-Strip-Rep ...
- 联通BSS-ESS-CBSS系统安装相关
前言 1. 版本信息 版本 日期 记录 1.0 2016.08.15 初始版本 2. 作者信息 信息 内容 部门 夷陵区分公司 作者 Z.J.T 邮箱 coralfoxzjt@163.com 必须操作 ...
- redis-cli
redis-cli --stat //监控key的数量,内存占用 redis-cli --scan //列出所有的key redis-cli --bigkeys //列出占用内存较大的key redi ...
- MySQL索引 索引分类 最左前缀原则 覆盖索引 索引下推 联合索引顺序
MySQL索引 索引分类 最左前缀原则 覆盖索引 索引下推 联合索引顺序 What's Index ? 索引就是帮助RDBMS高效获取数据的数据结构. 索引可以让我们避免一行一行进行全表扫描.它的 ...
- antd图标库按需加载的插件实现
前景概要 antd是阿里出品的一款基于antd的UI组件库,使用简单,功能丰富,被广泛应用在中台项目开发中,虽然也出现了彩蛋事故,但不能否认antd本身的优秀,而我们公司在实际工作中也大量使用antd ...
- java 和 c++ 的三目运算符的区别
转载请注明出处:http://www.cnblogs.com/liangyongrui/p/6348001.html 以前很少用java,就知道java和c++差不多. 今天就踩了一个坑. 不吐糟,直 ...
- Traffic Real Time Query System,题解
题目链接 题意: 问从一条边到另一条边的必经点. 分析: 首先,问必经点,当然是要点双缩点(圆方树)啦,关键是把边映射到哪一点上,其实直接放在某联通分量的方点上就行,但是这个点并不好找,所以我们考虑一 ...
- 关于npm和yarn 安装vue脚手架
第一篇博客有点小紧张.轻喷~ 第一步:安装node.js 地址 --------https://nodejs.org/en/ 详细步骤这里就不写了 可以去看 地址 ----- ...