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

    是的,l的每个元素为原来的三倍。
    函数应该懂了吧。
    可迭代对象应该懂了吧。
    重点是,map()函数会用了吧。
    恭喜!

    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()的简单用法。

     
  • 相关阅读:
    java——ArrayList中remove()方法疑问总结
    java——ArrayList中contains()方法中的疑问
    C语言中signed和unsigned理解
    IO流——常用IO流详解
    Lost's revenge
    Searching the String
    DNA repair
    Ring
    Wireless Password
    Censored!
  • 原文地址:https://www.cnblogs.com/Napoleon-Wang/p/6797692.html
Copyright © 2020-2023  润新知