【转】python3中内建函数map与reduce简单介绍

map()的使用

   map()的使用方法形如map(f(x),Itera).对,它有两个参数,第一个参数为某个函数,第二个为可迭代对象。如果不懂什么是函数,不懂什么是可迭代对象没关系,记住下面的例子就可以了:

  

1 >>> def g(x):
2     return 3 * x
3 
4 >>> l=map(g,[1,3,4,5,7,10])
5 >>> list(l)
6 [3, 9, 12, 15, 21, 30]

       定义的g(x)就是作为map()第一个参数,它的作用是取参数X的三倍。

       [1,3,4,5,7,10]列表作为g(x)的第二个参数,它是一个列表。没错,列表是一个可迭代对象,当然可迭代对象不仅仅有列表,其他的可以慢慢学习。调用map函数后,g(x)将会作用到列表的每个元素,我们来看看作用后的效果:

>>> list(l) 
[3, 9, 12, 15, 21, 30]


reduce()的使用
  reduce()的使用方法形如reduce(f(x),Itera).对,它的形式和map()函数一样。不过参数f(x)必须有两个参数。reduce()函数作用是:把结果继续和序列的下一个元素做累积计算。
>>> from functools import reduce
>>> def add(x,y): #定义一个相加函数
        return x+y

>>> reduce(add,[1,2,3,4,6])
16

add(x,y)是我们定义的一个函数,将add函数和[1,2,3,4,6]列表传入reduce函数,就相当于1+2+3+4+6 =16。即把结果继续和序列的下一个元素做累加。

我们再来举一实例来说明:

>>> def fun(x,y):#定义一个函数
        return 10*x+y

>>> reduce(fun,[2,5,6])
256

定义的函数fun作用是将x,y转化成一个整数xy。于是作用于reduce就会将列表[x1,x2,x3,x4,x5]转化成整数x1x2x3x4x5。

这就是reduce()的作用。

以上就是内建函数map()和reduce()的简单用法。

原文地址:https://www.cnblogs.com/hxiaoli/p/8393384.html