廖雪峰的Python-map/reduce
来源:互联网 发布:日本端口 编辑:程序博客网 时间:2024/06/04 18:40
1、map
map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
例子:
>>> 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(x)=x2,还可以计算任意复杂的函数,比如,把这个list所有数字转为字符串:
>>>map(str,[1,2,3,4,5,6,7,8,9])['1', '2', '3', '4', '5', '6', '7', '8', '9']
(注:字符串是以''或""括起来的任意文本。String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.)
2、reduce
reduce把一个函数作用在一个序列[x1, x2, x3...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
例子1:
>>> def add(x,y):... return x+y...>>> reduce(add,[1,3,5,7,9])25例子2:把序列[1, 3, 5, 7, 9]变换成整数13579
>>> def fn(x, y):... return x * 10 + y...>>> reduce(fn, [1, 3, 5, 7, 9])13579例子3:把‘13579’(str)转换为 13579(int)
>>> def fn(x, y):... return x * 10 + y...>>> def char2num(s):... return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]...>>> reduce(fn, map(char2num, '13579'))13579(注:int 为 表示一种整型数据类型; char 为 可容纳单个字符的数据类型。)
3、习题
3.1 利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']。
分析: 因为字符串 str 也是一个序列,对于本题就相当于把首字符全部变为大写,其他的均为小写。 第一步,把字符串分为首项和其他项。第二步,用函数把首项大写,其他项小写即可。
知识: ①切片:将 ‘michael’切片。
>>> s = 'michael'>>> s[0]'m'>>> s[1:]'ichael'
(注 关于切片详细内容见:切片 )
②函数:.upper() & lower() ; 在字符串上执行.upper()方法将所有字符转换为大写,而lower()方法将所有字符转换为小写。
>>> s = 'michael'>>> def f(s):... return s[0].upper()...>>> f(s)'M'(注:函数不能直接使用需要先定义函数。)
答案:
>>> L = ['adam', 'LISA', 'barT']>>> def f(s):... return s[0].upper() + s[:].lower()...>>> map(f,L)['Aadam', 'Llisa', 'Bbart']
疑问:怎么才能在submit3中运行Python项目,用submit3写的.py项目运行后丝毫没有反应?
答案:只有运行没有输出选项。
直接ctrl+b 直接运行即可。
2017年6月4日19:58:05
- 廖雪峰的Python-map/reduce
- 【廖雪峰Python习题集】map/reduce
- 廖雪峰JavaScript教程笔记——map/reduce
- 学习廖雪峰老师的python之map练习
- Python 扯淡的Map-Reduce
- Python的map/reduce函数
- 廖雪峰的Python教程
- 廖雪峰的Python-filter
- python 的map,reduce,filter的用法
- python map和reduce的用法
- python map和reduce的用法
- Python的map、filter、reduce函数
- Python的map、filter、reduce函数
- python map和reduce的用法
- python map和reduce的用法
- python的map,reduce,filter用法举例
- Python的map、filter、reduce函数
- Python的filter, map, reduce, lambda
- 【7.5】c++ primer plus 课后编程答案
- java语言基础(59)——jdk5自动装箱和拆箱(基本数据类型与包装类之间的转换)
- 大数据-一
- Android JNI开发入门
- java中两个界面之间传递参数的示例+
- 廖雪峰的Python-map/reduce
- quagga-0.99.20mr2.1
- 哪些方式实现可以线程安全
- spring事务配置方式
- 【7.6】c++ primer plus 课后编程答案
- Android 从源码分析View层次之ActionMode
- 二叉树中和为某一值的路径
- Android字节码插桩实战
- OkHttp请求回调中response.body().string()只能有效调用一次