Python:map()、reduce()、filter()的区别
文章转于:https://blog.csdn.net/goupper1991/article/details/49803355
原文博主:https://blog.csdn.net/goupper1991(小二百)
一)reduce()的用法:把一个函数作用在一个序列上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算
#注意:累积计算而不是加法运算,而是序列中后面的元素与前面的元素做累积计算(结果是所有元素共同作用的结果)
def func(x,y):
return x*y
print 'reduce1:',reduce(func,range(1,10))
print 'reduce2:',reduce(func,[1,2,3])
# print sum(range(1,101))#python内置sum()函数求和
二)map()接收两个参数,一个是函数,一个是序列,map将传人的函数依次作用到序列的每个元素,并把结果作为新的list返回。(结果是各有各的结果)
1)map()中的函数传人两个参数
def f(x,y,z,k):
return x*y+z+k
print 'map1:',map(f,range(1,10),range(2,11),range(1,10),[1,2,3,4,5,6,7,8,9])
print 'map2:',map(f,[1,2,3,4],[1,72,35,4],[1,2,3,4],[1,72,35,4])
2)map()中的函数传人一个参数
def f(x):
return x*x
print 'map11:',map(f,range(1,10))
print 'map22:',map(f,[1,2,3,4])
三)filter()是‘筛选函数’,也接收一个函数和一个序列,filter()把传人的函数依次作用于序列的每个元素,然后根据返回值是True还是false决定保留还是丢弃该元素
def fr(x):
return x%2==1
print 'filter1:',filter(fr,range(1,51))#筛选出100以内的所有奇数
print 'filter2:',filter(fr,[1,2,3,4])
上面代码运行结果:
reduce1: 362880
reduce2: 6
map1: [4, 10, 18, 28, 40, 54, 70, 88, 108]
map2: [3, 218, 143, 24]
map11: [1, 4, 9, 16, 25, 36, 49, 64, 81]
map22: [1, 4, 9, 16]
filter1: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49]
filter2: [1, 3]
map()和reduce()的区别:
1)map()中的函数(是指map()两个参数中的函数中的参数,而不是map()的参数)可以传人一个或者多个参数,reduce()中的函数必须接收两个参数
2)map()是将传人的函数依次作用到序列的每个元素,每个元素都是独自被函数“作用”一次,reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继续与下一个元素作用(累积计算),最终结果是所有的元素相互作用的结果。
Python:map()、reduce()、filter()的区别的更多相关文章
- Python map/reduce/filter/sorted函数以及匿名函数
1. map() 函数的功能: map(f, [x1,x2,x3]) = [f(x1), f(x2), f(x3)] def f(x): return x*x a = map(f, [1, 2, 3, ...
- python map, reduce,filter 使用
参考python built-on function: http://docs.python.org/2.7/library/functions.html?highlight=map%20reduce ...
- python3高阶函数:map(),reduce(),filter()的区别
转载请注明出处:https://www.cnblogs.com/shapeL/p/9057152.html 1.map():遍历序列,对序列中每个元素进行操作,最终获取新的序列 print(list( ...
- Python map,reduce,filter,apply
map(function, iterable, ...) map()函数接收两个参数,一个是函数,一个是可迭代的对象,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 基本等 ...
- [python基础知识]python内置函数map/reduce/filter
python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法) ...
- Demo of Python "Map Reduce Filter"
Here I share with you a demo for python map, reduce and filter functional programming thatowned by m ...
- Python学习:函数式编程(lambda, map() ,reduce() ,filter())
1. lambda: Python 支持用lambda对简单的功能定义“行内函数” 2.map() : 3.reduce() : 4.filter() : map() ,reduce() , filt ...
- python 函数式编程之lambda( ), map( ), reduce( ), filter( )
lambda( ), map( ), reduce( ), filter( ) 1. lambda( )主要用于“行内函数”: f = lambda x : x + 2 #定义函数f(x)=x+2 g ...
- python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
1.1函数式编程 面向过程编程:我们通过把大段代码拆成函数,通过一层一层的函数,可以把复杂的任务分解成简单的任务,这种一步一步的分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...
- map/reduce/filter/lambda
Python内建了map()/reduce()/filter()函数. map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的It ...
随机推荐
- MySQL合并多行
select id,group_concat(re_id order by re_id separator ",") as re_idfrom tablenamegroup by ...
- 洛谷P2402 奶牛隐藏
洛谷P2402 奶牛隐藏 题目背景 这本是一个非常简单的问题,然而奶牛们由于下雨已经非常混乱,无法完成这一计算,于是这个任务就交给了你.(奶牛混乱的原因看题目描述) 题目描述 在一个农场里有n块田地. ...
- 【深度学习】ubuntu16.04下安装opencv3.4.0
1.首先安装一些编译工具 # 安装编译工具 sudo apt-get install build-essential # 安装依赖包 sudo apt-get install cmake git li ...
- [原创]java WEB学习笔记01:javaWeb之tomcat的安装和配置
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Spark Structured Streaming框架(3)之数据输出源详解
Spark Structured streaming API支持的输出源有:Console.Memory.File和Foreach.其中Console在前两篇博文中已有详述,而Memory使用非常简单 ...
- android电池(四):电池 电量计(MAX17040)驱动分析篇【转】
本文转载自:http://blog.csdn.net/xubin341719/article/details/8969369 电池电量计,库仑计,用max17040这颗电量IC去计量电池电量,这种方法 ...
- Spring Cloud之Ribbon与Nginx区别
客户端负载均衡器 在SpringCloud中Ribbon负载均衡客户端,会从eureka注册中心服务器端上获取服务注册信息列表,缓存到本地. 让后在本地实现轮训负载均衡策略. Ribbon与Nginx ...
- castle windsor学习-----Registering components by conventions
注册多个组件 1.one-by-one注册组件可能是一项非常重复的工作,可以通过Classes或Types注册一组组件(你可以指定一些特定的特征) 三个步骤 注册多个类型通常采取以下结构 contai ...
- javascript的40个网页常用小技巧
下面是javascript的40个网页常用小技巧,对网站开发人员相信会有帮助.1. oncontextmenu="window.event.returnValue=false" 将 ...
- vue-cli3 set vue.config.js
//config目录下index.js配置文件// see http://vuejs-templates.github.io/webpack for documentation.// path是nod ...