Python filter,map,lambda,reduce,列表解析
filter用法 filter(func,seq)
将seq的元素逐一代入func,通过func的返回值来判断是保留还是过滤
- >>> def foo(x):
- return x>3
- >>> filter(foo,range(6))
- [4, 5]
>>> filter(lambda x:x>3,range(6))
[4, 5]
- #注意只需要写函数名,不带参数
map用法map(func/lambda,seq)
通过函数对队列中的每个元素进行操作,元素替换成返回值,注意是生成一个新的序列,原来的序列不会变化
- >>> map(lambda x:x*2,range(6))
- [0, 2, 4, 6, 8, 10]
- #同样的,这里要么是lambda表达式,要不就是是个函数名
- >>> a
- [1, 2, 3, 4, 5, 6]
- >>> map(foo,a)
- [False, False, False, True, True, True]
- >>> a
- [1, 2, 3, 4, 5, 6]
- #foo是判断x是否大于三,是返回True,否返回false
对多个序列的操作
>>> map(lambda x,y:x+y,range(4),range(5))
Traceback (most recent call last):
File "<pyshell#84>", line 1, in <module>
map(lambda x,y:x+y,range(4),range(5))
File "<pyshell#84>", line 1, in <lambda>
map(lambda x,y:x+y,range(4),range(5))
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
>>> map(lambda x,y:x+y,range(4),range(4))
[0, 2, 4, 6]
列表解析
[表达式/函数,for循环]
- >>> [x**2 for x in range(6)]
- [0, 1, 4, 9, 16, 25]
- >>> [a**2 for x in range(6)]
- [1, 1, 1, 1, 1, 1]
- >>> #可见当你写一个for循环中无关的变量时,它仅仅重复表达式的结果
- >>> [foo(x) for x in range(6)]
- [False, False, False, False, True, True]
- #这里的函数要带括号,foo同上
- >>> [lambda x:x**2 for x in range(6)]
- [<function <lambda> at 0x01DE8870>, <function <lambda> at 0x01DE8830>, <function <lambda> at 0x01DE88F0>, <function <lambda> at 0x01DE8930>, <function <lambda> at 0x01DE8970>, <function <lambda> at 0x01DE89B0>]
- >>> [(lambda x:x**2)(x) for x in range(6)]
- [0, 1, 4, 9, 16, 25]
- #同样你需要把lambda看作是函数名,或者返回值
- >>> [x**2 for x in range(6) if x**2>9]
- [16, 25]
- >>> [(x**2,y**3) for x in range(4) for y in range(3) if x>0 and y>0]
- [(1, 1), (1, 8), (4, 1), (4, 8), (9, 1), (9, 8)]
- >>> #将后面的for看成嵌套的,还有前面的表达式记得加括号
reduce 对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用
- >>> reduce(lambda x,y:x+y,range(1,101))
- 5050
- >>> #reduce一定是接受一个二元函数,比如上面就是 (((1+2)+3)+4)+...
- >>> reduce(lambda x,y:x+y,range(1,101),100)
- 5150
- #接受的初始值
Python filter,map,lambda,reduce,列表解析的更多相关文章
- Python【map、reduce、filter】内置函数使用说明(转载)
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- 【转】Python 中map、reduce、filter函数
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- Python【map、reduce、filter】内置函数使用说明
题记 介绍下Python 中 map,reduce,和filter 内置函数的方法 一:map map(...) map(function, sequence[, sequence, ...]) -& ...
- (Python)list的内建函数 filter(), map(), 和 reduce()
这一节,我们将主要学习用于list的三个内建函数: filter(), map(), 和 reduce(). 1.filter(function, sequence) 逐个从sequence中取一个 ...
- 转:Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...
- Python里的map、reduce、filter、lambda、列表推导式
Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...
- Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...
- python中reduce filter map lambda函数
lambda函数 python 使用 lambda 来创建匿名函数,lambda返回值是一个函数的地址,也就是函数对象. 语法:lambda [arg1 [,arg2,.....argn]]:expr ...
- python filter map reduce
filter(function, iterable): Construct a list from those elements of iterable for which function retu ...
随机推荐
- 常用dos命令 如查询端口号是否被占用
①查询端口号是否被占用掉 在windows命令行窗口下执行:运行--cmdC:\>netstat -aon|findstr "8080" TCP 127.0.0.1:80 0 ...
- github删除带有文件的文件夹
1. git pull you git url2. git checkout 3. rm -rf dirName4. git add --all5. git commit -m"remove ...
- 安装生物信息学软件-Samtools
装完Bowtie2,官方文档给出的栗子说可以玩一玩samtools,所以我入个坑 参考这篇http://m.010lm.com/roll/2016/0620/2343389.html Step 1: ...
- 黑马程序员——【Java高新技术】——JavaBean、注解
---------- android培训.java培训.期待与您交流! ---------- 一.JavaBean * 通过内省引入JavaBean:内省对应的英文全程是IntroSpector.在J ...
- OD调试篇7--笔记及解题报告
MFC:微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows AP ...
- MVC中的自定义控件
MVC中的控件都是HtmlHelper的扩展方法(不了解扩展方?法请阅读扩展方法),比如@Html.ActionLink,F12可以看到它是这样写的: public static MvcHtmlStr ...
- 68. 蓄水池抽样(Reservoir Sampling)
[本文链接] http://www.cnblogs.com/hellogiser/p/reservoir-sampling.html 问题起源于编程珠玑Column 12中的题目10,其描述如下: H ...
- Linux下部署solrCloud
1. 准备工作 这里我只是把我的师兄教我的关于Solrcloud搭建的过程,以及需要注意的地方文档化了.感谢他教会了我很多. 1.机子IP 三台安装linux系统的机子的IP地址为: 172.24.1 ...
- Linux命令:nohup、df、du与/dev/null
早上开始工作时发现服务器挂掉了,重启TongWeb时有报错: 上面的红框圈错了,第一个红框的下一行: java.io.IOException: No Space left on device 我们用d ...
- 2015GitWebRTC编译实录16
新问题,看应该是视频编解码那里出问题了.找找看.WebRtc VoiceEngine codecs:ISAC/16000/1 (103)ISAC/32000/1 (104)Unexpected cod ...