map(func, seq)
对seq中的每一个元素,调用func并返回结果。典型的应用是使用lambda函数。

>>> def square(x):
return x**2 >>> square = map(square,range(10))
>>> print(square)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>>
>>> names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach']
>>> lengths = map(len,names)
>>> print(lengths)
[4, 3, 3, 5, 6, 7, 4]
>>>

 

lambda
使用lambda关键创建匿名函数

>>> print((lambda x:x**2)(5))
25
>>> print((lambda x,y: x*y)(3,4))
12
>>> print((lambda x: x.startswith('B'))('Bob'))
True
>>> print((lambda x:x.startswith('B'))('Robert'))
False
>>> incr = lambda input:input+1
>>> print(incr(4))
5
>>>

lambda和map一起使用

>>> squares = map(lambda x:x**2,range(10))
>>> print(squares)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
>>>

 

filter(func or None, seq)
对seq中的每一个元素,调用func并返回那些使func为true的seq中的项。
也可以在filter()中使用lambda

>>> squares = map(lambda x:x**2,range(10))
>>> special_squares = filter(lambda x:x>5 and x<50,squares)
>>> print(special_squares)
[9, 16, 25, 36, 49]
>>>
>>> names = ['Anne', 'Amy', 'Bob', 'David', 'Carrie', 'Barbara', 'Zach']
>>> b_names = filter(lambda s:s.startswith('B'),names)
>>> print(b_names)
['Bob', 'Barbara']
>>>

  

reduce(func, seq)
对seq中的每一个元素,调用func并返回单个结果
如果seq = [ s1, s2, s3, ... , sn ],按照以下方式执行:

-先取出seq中的两个元素s1,s2调用func(s1,s2)
-将上一步的结果和seq中的下个元素一起调用func,相当于func(func(s1,s2),s3)
-按照上面的步骤继续调用下去
-最终返回单个值作为reduce()的返回值

>>> reduce(lambda x,y:x+y, [47,11,42,13])
113
>>>

计算过程如下:

>>> f = lambda a,b:a if(a>b) else b
>>> reduce(f,[47,11,42,102,13])
102
>>>
>>> reduce(lambda x,y:x+y,range(1,101))
5050
>>>

  

Python -- map, Lambda, filter and reduce的更多相关文章

  1. python之map、filter、reduce、lambda函数 转

    python之map.filter.reduce.lambda函数  转  http://www.cnblogs.com/kaituorensheng/p/5300340.html 阅读目录 map ...

  2. Python 之map、filter、reduce

    MAP 1.Python中的map().filter().reduce() 这三个是应用于序列的内置函数,这个序列包括list.tuple.str. 格式: 1>map(func,swq1[,s ...

  3. map、filter、reduce、lambda

    一.map.filter.reduce map(fuction , iterable) 映射 对可迭代对象中的每一项,使用函数去改变 filter(function, iterable) 过滤 可迭代 ...

  4. python的map,filter,reduce学习

    python2,python3中map,filter,reduce区别: 1,在python2 中,map,filter,reduce函数是直接输出结果. 2,在python3中做了些修改,输出前需要 ...

  5. C#数组的Map、Filter、Reduce操作

    在Javascript.Python等语言里,Map.Filter和Reduce是数组的常用方法,可以让你在实现一些数组操作时告别循环,具有很高的实用价值.它们三个的意义大家应该都清楚,有一个十分形象 ...

  6. Swift函数编程之Map、Filter、Reduce

    在Swift语言中使用Map.Filter.Reduce对Array.Dictionary等集合类型(collection type)进行操作可能对一部分人来说还不是那么的习惯.对于没有接触过函数式编 ...

  7. ES6 数组遍历方法的实战用法总结(forEach,every,some,map,filter,reduce,reduceRight,indexOf,lastIndexOf)

    目录 forEach every some map filter reduce && reduceRight indexOf lastIndexOf 前言 ES6原生语法中提供了非常多 ...

  8. 辅助函数和高阶函数 map、filter、reduce

    辅助函数和高阶函数 map.filter.reduce: 一.辅助函数:(1-1)响应式函数 (数组更新检测):    push()    pop()    shift()    unshift()  ...

  9. python之map、filter、reduce、lambda函数

    map map函数根据提供的函数对指定的序列做映射,定义:map(function, sequence[,sequence,...])--->list 例1 >>> map(l ...

随机推荐

  1. Dictionary应用

    using System; using System.Collections.Generic; using System.Data; using System.Web; using System.We ...

  2. robot framework-requests库安装过程问题解决

    这几天本想研究下用robotframework+HTTP library (Requests)来做接口测试(http协议), 安装完Requests库后,在RIDE里导入该库时显示是红色,即导入失败( ...

  3. ExtJs4.2中Tab选项卡的右击关闭其它和关闭当前功能不准确的解决方法

    一.ExtJs4.2中Tab选项卡的右击关闭其它和关闭当前功能不准确的解决方法 二.找到ux目录下的TabCloseMenu.js文件,将内容替换成下面代码. 三.代码: /** * Plugin f ...

  4. DbScopeFactory

    using (var db = DbScopeFactory.Create()) { //这里修改数据 db.SaveChanges(); }

  5. 通过Fiddler抓取Java HttpClient的HTTP包

    设置HttpClient访问Fiddler的代理即可. public static void main(String[] args) throws Exception { HttpPost httpP ...

  6. SHELL函数处理

    SHELL函数调用分为两种: 第一种方式,有点像C语言调用函数的风格,直接把函数的执行结果复制给变量!不过,这个赋值过程和C语言的函数赋值是不一样的! C语言中,函数调用,是将函数的返回值返回给被调函 ...

  7. eclipse 远程调试程序

    最近遇到一个非常恶心的问题,本地调试没有问题,到了线上就复发,逼于无奈只能使用eclipse远程调试,下面把步骤记录一下: 1.修改服务器的启动脚本,添加如下内容: export JPDA_ADDRE ...

  8. ssh 防止超时掉线

    超时掉线的机制原始驱动力是什么?反正远程操作久置掉线确实挺烦的. 解决的办法呢,也是有的,客户端和服务器端都可以做.就是使用 no-op 反空闲协议发送呼吸包,来确认另一端是否在线:没回应就下线,而不 ...

  9. js Object.create 初探

    1.作用 Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__. https://developer.mozilla.org/zh-CN/docs/W ...

  10. SSM实战——秒杀系统之Web层Restful url设计、SpringMVC整合、页面设计

    一:Spring整合SpringMVC 1:编写web.xml,配置DispatcherServlet <web-app xmlns="http://java.sun.com/xml/ ...