Python map,reduce,filter,apply
map(function, iterable, ...)
map()函数接收两个参数,一个是函数,一个是可迭代的对象,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
基本等价于 [f(x) for x in interable]
>>> map(lambda x:x*2,xrange(4))
[0, 2, 4, 6]
>>> [x*2 for x in xrange(4)]
[0, 2, 4, 6]
>>> l=["far","foo","bar"]
>>> map(lambda x:x.upper(),l)
['FAR', 'FOO', 'BAR']
>>> map(lambda x: "f" in x,l)
[True, True, False]
>>> filter(lambda x:"f" in x,l)
['far', 'foo']
>>> map(lambda x:x.upper(),filter(lambda x:"f" in x,l))
['FAR', 'FOO']
#map 并行 def formular_1(x1,x2,x3):
return 100*x1+20*x2+x3 a=[1,2,3]
b=[-1,-2,-3]
c=[1.0,2.5,3.5] map(formular_1,a,b,c) [81.0, 162.5, 243.5]
#当fun为None,就类似zip
map(None,a,b,c)
[(1, -1, 1.0), (2, -2, 2.5), (3, -3, 3.5)]
reduce( func, seq[, init] )
reduce函数即为化简,它是这样一个过程:每次迭代,将上一次的迭代结果(第一次时为init的元素,如没有init则为seq的第一个元素)与下一个元素一同执行一个二元的func函数。在reduce函数中,init是可选的,如果使用,则作为第一次迭代的第一个元素使用。
这里面函数必须有俩个参数。
reduce(lambda x,y :x*y,xrange(1,10))
362880
reduce(lambda x,y :x*y,xrange(1,10),0.5)
181440.0
filter( func, seq )
该内建函数的作用相当于一个筛子。func函数是一个布尔函数,filter()
调用这个布尔函数,将每个seq中的元素依次过一遍筛子,选出使func返回值是Ture的元素的序列。
scores=[49,59,50,66,89,100]
def score_filter(score):
return score>=80
#
result=[]
for score in scores:
if score_filter(score):
result.append(score) [89, 100] #2 filter(score_filter,scores) [89, 100] #3 list comprehension 列表表达式 [score for score in scores if score>=80] [89, 100]
filter(lambda s:s and s.strip(),["A","",None,"C"]) ['A', 'C']
apply(func [, args [, kwargs ]])
函数用于当函数参数已经存在于一个元组或字典中时,间接地调用函数。args是一个包含将要提供给函数的按位置传递的参数的元组。如果省略了args,任 何参数都不会被传递,kwargs是一个包含关键字参数的字典。apply()的返回值就是func()的返回值,apply()的元素参数是有序的,元素的顺序必须和func()形式参数的顺序一致
然而,由于目前的Python中,已经可以在函数调用中使用非关键字参数和关键字参数作为可变长参数调用,apply()已经被从Python1.6开始被摒弃淘汰。因此,此处仅对该函数进行一个大致的介绍,而不具体深入,也不应在编程中再使用该函数
def say():
print 'say in' apply(say) say in def fun_add(x):
print str(x) apply(fun_add,("")) 1 def say(a, b):
print a, b apply(say,("hello", "python")) hello python
Python map,reduce,filter,apply的更多相关文章
- 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 ...
- [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 ...
- Python-函数式编程-map reduce filter lambda 三元表达式 闭包
lambda 匿名函数,核心是作为算子,处理逻辑只有一行但具有函数的特性,核心用于函数式编程中 三元运算符 其实本质上是if分支的简化版,满足条件返回 if 前面的值,不满足条件返回 else后面的值 ...
随机推荐
- 【BIEE】[nQSError: 35008]尝试从服务器检出对象时出错。请验证服务器设置。
今天在使用PRD时,我先导入表A,然后觉得表A的名字不好,就把导入的表A重命名为表A_TMP,接着保存资料库就卡住了"未响应"(一般不会出现这种问题) 接着我直接使用任务管理器强制 ...
- SDUT 2766-小明传奇2(母函数)
小明传奇2 nid=24#time" title="C.C++.go.haskell.lua.pascal Time Limit1000ms Memory Limit 65536K ...
- php序列化&反序列化坑
一: 在php中如果我们统一编码是没有什么问题了,但是很多朋友会发现一个问题就是utf8和gbk编码中返回的值会有所区别: php 在utf8和gbk编码下使用serialize和unserializ ...
- 解决Windows平台通过cURL上传APP到蒲公英pgyer平台时无法使用中文升级描述的问题
解决Windows平台通过cURL上传APP到蒲公英pgyer平台时无法使用中文升级描述的问题 官方上传命令 curl -F file=@"315.apk" -F uKey=XXX ...
- 【COCOS2DX-LUA 脚本开发之一】在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途!
[COCOS2DX-LUA 脚本开发之一]在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途! 分类: [Cocos2dx Lua 脚本开发 ] 2012-04-1 ...
- APICloud打包Vue单页应用
APICloud新建项目后,会生成以下目录结构 其中index.html是入口文件,而vue-cli打包生成的文件是在dist目录下 ├─dist│ └─static│ ├─css│ └─js │ └ ...
- iOS Masonry 抗压缩 抗拉伸
约束优先级: 在Autolayout中每个约束都有一个优先级, 优先级的范围是1 ~ 1000.创建一个约束,默认的优先级是最高的1000 Content Hugging Priority: 该优先级 ...
- iOS 获取LaunchImage启动图
iOS开发中,LaunchImage图片会根据手机机型的不同,自动匹配对应的图片,而我们如果想要拿到对应的图片,无法直接通过图片的名字获取该启动图,而需要通过以下方式 + (NSString *)ge ...
- vi 详解
1.vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下: ...
- IDEA导入tomcat9源码跑起来~
如题,这里记录一下用IDEA导入tomcat9的源码,并跑起来.看了本教程你还是不会的话直接问我. 一.环境安装以及目录搭建 tomcat9源码下载地址:http://mirrors.hust.edu ...