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 ...
随机推荐
- Javascript 闭包(Closures)
本文内容 闭包 闭包和引用 参考资料 闭包是 JavaScript 的重要特性,非常强大,可用于执行复杂的计算,可并不容易理解,尤其是对之前从事面向对象编程的人来说,对 JavaScript 认识和编 ...
- mysql查询结果单位换算后小数位数的保留方式
1.调用mysql自带的格式化小数函数format(x,d) 例如: select format(23456.789,2); select formate(salary,2); 输出: 23,45 ...
- seajs 笔记
第一步:全局配置的配置对象configseajs.config = function(configData)如:var configData = { base: 'path/lib/', ...
- VDP
Today VMware announced a new version on their backup product vSphere Data Protection. They gave it t ...
- Warning: Divide by zero.
问题:如标题 解决方案:分母加上+eps 参考自:http://www.ilovematlab.cn/thread-43128-1-1.html
- sqlalchemy 获取计数 count
from sqlalchemy import func message_count = self.db.query(func.count(Message.uid)).filter(Message.ui ...
- 算法笔记_204:第四届蓝桥杯软件类决赛真题(Java语言C组)
目录 1 好好学习 2 埃及分数 3 金蝉素数 4 横向打印二叉树 5 危险系数 6 公式求值 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 好好学习 汤姆跟爷爷来中国旅游.一天,他帮助中国的 ...
- psql 查询表大小
select schemaname,tablename,pg_relation_size(schemaname||'.'||tablename) as tabsize from pg_tables o ...
- 【Linux】找出文件之间的差异
使用命令comm可以找出2个文件之间的差异 现在有文件如下: Linux:/qinys # cat A.txt apple lemon onion orange pear Linux:/qinys # ...
- django之环境变量配置
1.配置python变量环境,C:\Python27\;C:\Python27\Scripts\ 2.配置django变量环境,C:\Python34\Lib\site-packages\Django ...