Python学习(三)——map和reduce函数
2017-01-12 15:22
369 查看
python内建了map和reduce函数。
先来看看map函数。map函数接收两个参数,第一个参数是函数,第二个函数是序列。map将传入的函数依次作用到序列的每个元素上,并把结果作为新的list返回。
比如,定义一个函数f(x) = x*x,要把这个函数作用到序列[1,2,3,4,5,6,7,8,9]上,就可以用map如下实现:
>>> def f(x):
return x*x
再来看reduce函数。reduce把一个函数作用到一个序列上,这个函数必须接受两个参数。reduce把结果继续和序列的下一个做累积运算,效果如下:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4) 比如对一个序列求和,可以如下操作:
>>> def add(a,b):
return a + b
>>> reduce(add,[1,2,3,4])
10 又例如把序列[1,2,3,4]办成整数1234,页可以用reduce实现:
>>> def fn(a,b):
return a*10 +b
>>> reduce(fn,[1,2,3,4])
1234
先来看看map函数。map函数接收两个参数,第一个参数是函数,第二个函数是序列。map将传入的函数依次作用到序列的每个元素上,并把结果作为新的list返回。
比如,定义一个函数f(x) = x*x,要把这个函数作用到序列[1,2,3,4,5,6,7,8,9]上,就可以用map如下实现:
>>> def f(x):
return x*x
>>> map(f,[1,2,3,4,5,6,7,8,9]) [1, 4, 9, 16, 25, 36, 49, 64, 81]map传入的第一个参数是f,即函数对象本身。
再来看reduce函数。reduce把一个函数作用到一个序列上,这个函数必须接受两个参数。reduce把结果继续和序列的下一个做累积运算,效果如下:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4) 比如对一个序列求和,可以如下操作:
>>> def add(a,b):
return a + b
>>> reduce(add,[1,2,3,4])
10 又例如把序列[1,2,3,4]办成整数1234,页可以用reduce实现:
>>> def fn(a,b):
return a*10 +b
>>> reduce(fn,[1,2,3,4])
1234
相关文章推荐
- 笨办法学Python-习题2:注释和井号
- python学习记录--set
- YATE界面生成模板引擎 《Head First Python》第七章
- 第13课 Python中while循环
- 第12课 Python中if分支语句表达式结构
- DRY Principles through Python Decorators
- 第11课 Python中if分支结构
- python学习记录--字典
- 图文详解 Python+Eclipse 环境搭建
- python (numpy基础) (pandas基础)(正则表达式)
- python从零开始写爬虫(2)
- 用pyinstaller打包一个exe程序
- python学习记录--元组
- 《Programming Collective Intelligence》笔记之 Chapter 2
- 比较全的python cmd模块的用法
- Python 列表、元组、字典t的常用方法
- 关于Pywin32模块安装找不到路径问题
- Python中time, strftime和strptime
- Python基于django提供大文件下载接口及Python基于tornado下载大文件
- Python学习(二)——函数式编程