Python -- map, Lambda, filter and reduce
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的更多相关文章
- python之map、filter、reduce、lambda函数 转
python之map.filter.reduce.lambda函数 转 http://www.cnblogs.com/kaituorensheng/p/5300340.html 阅读目录 map ...
- Python 之map、filter、reduce
MAP 1.Python中的map().filter().reduce() 这三个是应用于序列的内置函数,这个序列包括list.tuple.str. 格式: 1>map(func,swq1[,s ...
- map、filter、reduce、lambda
一.map.filter.reduce map(fuction , iterable) 映射 对可迭代对象中的每一项,使用函数去改变 filter(function, iterable) 过滤 可迭代 ...
- python的map,filter,reduce学习
python2,python3中map,filter,reduce区别: 1,在python2 中,map,filter,reduce函数是直接输出结果. 2,在python3中做了些修改,输出前需要 ...
- C#数组的Map、Filter、Reduce操作
在Javascript.Python等语言里,Map.Filter和Reduce是数组的常用方法,可以让你在实现一些数组操作时告别循环,具有很高的实用价值.它们三个的意义大家应该都清楚,有一个十分形象 ...
- Swift函数编程之Map、Filter、Reduce
在Swift语言中使用Map.Filter.Reduce对Array.Dictionary等集合类型(collection type)进行操作可能对一部分人来说还不是那么的习惯.对于没有接触过函数式编 ...
- ES6 数组遍历方法的实战用法总结(forEach,every,some,map,filter,reduce,reduceRight,indexOf,lastIndexOf)
目录 forEach every some map filter reduce && reduceRight indexOf lastIndexOf 前言 ES6原生语法中提供了非常多 ...
- 辅助函数和高阶函数 map、filter、reduce
辅助函数和高阶函数 map.filter.reduce: 一.辅助函数:(1-1)响应式函数 (数组更新检测): push() pop() shift() unshift() ...
- python之map、filter、reduce、lambda函数
map map函数根据提供的函数对指定的序列做映射,定义:map(function, sequence[,sequence,...])--->list 例1 >>> map(l ...
随机推荐
- OpenWRT使用wifidog实现强制认证的WIFI热点
首先安装wifidog到OpenWRT的路由器: opkg update opkg install wifidog wifidog依赖下面这些模块: iptables-mod-extra iptabl ...
- HTML5画布生成的3D飞船舰队效果
在线演示 本地下载 使用HTML5画布2D来模拟3D的空间效果,生成舰队飞行效果,了解如何开发,请阅读下面代码相关“轻视频”: HTML5画布模拟生成3D的舰队飞行效果
- setUserVisibleHint-- fragment真正的onResume和onPause方法
现在越来越多的应用会使用viewpager+fragment显示自己的内容页,fragment和activity有很多共同点,如下图就是fragment的生命周期 但是fragment和activit ...
- Format Conditions按条件显示表格记录
标记特定记录 DevExpress强大得确实让人觉得它别具一格!现在,我有这样一个需求,把一个表中某字段为False的记录标记出来.下面是效果(某字段的可见性为否): 实现方式 如果是以前,我写个代码 ...
- Want to write a book? Use word count to stay on track
http://paloalto.patch.com/groups/maria-murnanes-blog/p/bp--want-to-write-a-book-use-word-count-to-st ...
- oj
https://github.com/zhblue/hustoj insert into privilege(user_id,rightstr) values('wxy','administrator ...
- 013-Go通archive/zip生成ZIP文件
package main import( "io/ioutil" "os" "bytes" "archive/zip" ...
- shell date 命令整理
最近发现date命令特别好用(在mac里面不行) 1.获取今天的日期 [root@nd02 ~]# date +%Y%m%d 2.获取某一天的日期 [root@nd02 ~]# date -d &qu ...
- 获取请求真实ip
/** * Copyright (c) 2011-2014, James Zhan 詹波 (jfinal@126.com). * * Licensed under the Apache License ...
- Java多线程之线程的状态以及线程间协作通信导致的线程状态转换
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6561589.html 一:线程的状态以及变化图 Java中线程中状态可分为五种:New(新建状态),Ru ...