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,列表解析的更多相关文章

  1. Python【map、reduce、filter】内置函数使用说明(转载)

    转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...

  2. 【转】Python 中map、reduce、filter函数

    转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...

  3. Python【map、reduce、filter】内置函数使用说明

    题记 介绍下Python 中 map,reduce,和filter 内置函数的方法 一:map map(...) map(function, sequence[, sequence, ...]) -& ...

  4. (Python)list的内建函数 filter(), map(), 和 reduce()

    这一节,我们将主要学习用于list的三个内建函数: filter(), map(), 和 reduce(). 1.filter(function, sequence)  逐个从sequence中取一个 ...

  5. 转:Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)

    Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...

  6. Python里的map、reduce、filter、lambda、列表推导式

    Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...

  7. Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)

    Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...

  8. python中reduce filter map lambda函数

    lambda函数 python 使用 lambda 来创建匿名函数,lambda返回值是一个函数的地址,也就是函数对象. 语法:lambda [arg1 [,arg2,.....argn]]:expr ...

  9. python filter map reduce

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

随机推荐

  1. iOS开发UI篇—无限轮播(循环展示)

    iOS开发UI篇—无限轮播(循环展示) 一.简单说明 之前的程序还存在一个问题,那就是不能循环展示,因为plist文件中只有五个数组,因此第一个和最后一个之后就没有了,下面介绍处理这种循环展示问题的小 ...

  2. 前端获取url参数

    function GetQueryString(name){ var reg = new RegExp("(^|&)"+ name +"=([^&]*)( ...

  3. 通过MD5排除重复文件

    今天下载了好多美女图片壁纸,可是看了一下发现好多图片重复了,有强迫症的我必须把重复的都给剔除掉,首先想到的当然是百度了,问问度娘有没有什么图片去重的工具,搜了一下还真有.奈何本人智商捉急用不来这高级的 ...

  4. 《Java中的包机制》

    /* 包的机制:(1) */ package lee; public class PackageTest { public void Test(int num) { System.out.printl ...

  5. 《C++primer》v5 第1章 开始 读书笔记 习题答案

    从今天开始在博客里写C++primer的文字.主要以后面的习题作业为主,会有必要的知识点补充. 本人也是菜鸟,可能有不对之处,还望指出. 前期内容可能会比较水. 1.1略 1.2略 1.3 cin和c ...

  6. (转)JQM 日期插件 mobiscroll Demo

    (原)http://www.wglong.com/main/artical!details?id=11  JQM 日期插件 mobiscroll Demo 2013-04-25 / 分类:Jquery ...

  7. Android Framework层Power键关机流程(二,关机流程)

    二,关机流程 从前一篇博文我们知道,当用户长按Power键时会弹出(关机.重启,飞行模式等选项)对话框,我们点击关机,则会弹出关机确认对话框.那么从选项对话框到关机确认对话框又是一个什么流程呢.下面我 ...

  8. JavaScript中__proto__与prototype的关系

    一.所有构造器/函数的__proto__都指向Function.prototype,它是一个空函数(Empty function) 1 2 3 4 5 6 7 8 9 Number.__proto__ ...

  9. Android 中pid与uid的作用与区别

    PID:为Process Identifier, PID就是各进程的身份标识. 程序一运行系统就会自动分配给进程一个独一无二的PID.进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在 ...

  10. git-quick-start 动画讲解Git命令行

    来源:http://git.oschina.net/wzw/git-quick-start#git-quick-start git-quick-start 这是一个git的快速入门项目,使用一些gif ...