码迷,mamicode.com
首页 > 编程语言 > 详细

【廖雪峰老师python教程】——map/reduce

时间:2018-10-03 22:57:22      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:its   UNC   抽象   return   inf   iterator   python   imp   .com   

Map【单个操作对不同单一对象重复进行】


 

  • map()函数接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的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

标签:its   UNC   抽象   return   inf   iterator   python   imp   .com   

原文地址:https://www.cnblogs.com/ChaoyuanJam/p/9739214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!