博学谷 > 资讯 > Python > map函数和reduce函数知识点讲解

原创 map函数和reduce函数知识点讲解

发布时间:2019-06-28 15:26:17 浏览 3056 来源:博学谷资讯 作者:三省

      map函数和reduce函数知识点讲解,根据参数,参数map()包含两个参数,第一个参数是一个函数,第二个是序列(列表 或元组)。reduce()第一个参数是函数,第二个是序列(列表或元组);依据数值作用,map()是将传入的函数依次作用到序列的每个元素,reduce()是将传人的函数作用在序列的第一个元素得到结果。

     

    map函数和reduce函数
      1、从参数方面来讲:


      map()包含两个参数,第一个参数是一个函数,第二个是序列(列表 或元组)。其中,函数(即 map 的第一个参数位置的函数)可以接收一个或多个参数。


      reduce()第一个参数是函数,第二个是序列(列表或元组)。但是,其函数必须接收两个参数。


      2、从对传进去的数值作用来讲:


      map()是将传入的函数依次作用到序列的每个元素,每个元素都是独自被函数“作用”一次 。


      reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继续与下一个元素作用(累积计算)。


      map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。


      >>> 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


      map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,


      因此通过list()函数让它把整个序列都计算出来并返回一个list。


      reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,


      reduce把结果继续和序列的下一个元素做累积计算,其效果就是


      reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)


      age:利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456


      def str2float(s):


      def fn(x,y):


      return x*10+y


      n=s.index('.')


      s1=list(map(int,[x for x in s[:n]]))


      s2=list(map(int,[x for x in s[n+1:]]))


      return reduce(fn,s1) + reduce(fn,s2)/10**len(s2)


      print('\'123.4567\'=',str2float('123.4567'))


      Python内建的filter()函数用于过滤序列。


      和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素


      然后根据返回值是True还是False决定保留还是丢弃该元素。filter()函数返回的是一个Iterator,也就是一个惰性序列。

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

领取成功
领取失败
上一篇:Python开发的内存管理机制及调优手段? 下一篇:lambda函数是什么?lambda函数有什么优势?

相关推荐 更多

最新文章

扫描二维码,回复"Python"获取100G资料包

4887铁算结果开奖结果小说