python 高阶函数二 map()和reduce()
2024-09-08 08:09:49
一、map()函数
map()
函数接收两个参数,一个是函数,一个是Iterable
,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator
返回。
>>> from collections import Iterator
>>> def f(x):
... return x * x
...
>>> r = map(f, [1, 2, 3, 4, 5])
>>> r
<map object at 0x1013e5748>
>>> isinstance(r, Iterator)
True
>>> list(r)
[1, 4, 9, 16, 25]
二、reduce()函数
reduce
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
>>> from functools import reduce
>>> def ad(x, y):
... return x + y
...
>>> reduce(ad, [1, 3, 5, 7, 9])
25
>>> from functools import reduce
>>> DIGITS = {'': 0, '': 1, '': 2, '': 3, '': 4, '': 5, '': 6, '': 7, '': 8, '': 9}
>>> def char2num(s):
... return DIGITS[s]
...
>>> def str2int(s):
... return reduce(lambda x, y: x * 10 + y, map(char2num, s))
...
>>> str2int('')
123456
最新文章
- React Native APP结构探索
- MySQL 磁盘I/O问题
- 【转】Web前端浏览器兼容初探
- Leetcode: Binary Watch
- oracle10g前期准备
- maven 配置报错 JAVA_HOME not found in your environment
- [转]RecyclerView初探
- 不可综合的verilog语句分析
- linux 使用ssh到远端并且使用while的坑
- Eclipse用法和技巧一:还原视图和编辑器
- CentOS-6.3安装配置SVN
- linux服务器的操作禁忌
- 打造基于Clang LibTooling的iOS自动打点系统CLAS(三)
- 03一些View总结
- AngularJS进阶(三十八)上拉加载问题解决方法
- ThinkPHP 数据库操作(三) : 查询方法、查询语法、链式操作
- unity 的一些API-01
- 【Ubuntu】Ubuntu bug “Reached target Shutdown”
- 【ASP.NET Web API教程】2.4 创建Web API的帮助页面[转]
- Python学习---IO模型1227