廖雪峰老师python教程——map/reduce
Posted Chaoyuan_Jam
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了廖雪峰老师python教程——map/reduce相关的知识,希望对你有一定的参考价值。
Map【单个操作对不同单一对象重复进行】
map()
函数接收两个参数,一个是函数,一个是Iterable
,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator
返回。- 返回结果注意转化为list输出;【有点,看起来抽象直观】
>>> def f(x): ... return x * x ... >>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> list(r) [1, 4, 9, 16, 25, 36, 49, 64, 81]
Reduce【两个对象操作后迭代下一个对象】
reduce
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算,其效果就是:-
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
>>> from functools import reduce >>> def fn(x, y): ... return x * 10 + y ... >>> reduce(fn, [1, 3, 5, 7, 9])
综合案列
- str2int()函数定义:
from functools import reduce DIGITS = {\'0\': 0, \'1\': 1, \'2\': 2, \'3\': 3, \'4\': 4, \'5\': 5, \'6\': 6, \'7\': 7, \'8\': 8, \'9\': 9} def str2int(s): def fn(x, y): return x * 10 + y def char2num(s): return DIGITS[s] return reduce(fn, map(char2num, s))
- 上面函数是最终抽象化的结果,可以尝试带一个字符‘123’进去看一看。
学到的几个其他函数:
- capitalize()、title():变成首字母大写,其他字母小写。
以上是关于廖雪峰老师python教程——map/reduce的主要内容,如果未能解决你的问题,请参考以下文章