zoukankan      html  css  js  c++  java
  • Python 之map、filter、reduce

    MAP

    1.Python中的map()、filter()、reduce()
        这三个是应用于序列的内置函数,这个序列包括list、tuple、str.
        格式:
            1>map(func,swq1[,seq2,...])
            第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。
        Python函数编程中map()函数是将func作用域seq中的每一个元素,并将所有的调用的结果作为一个list返回。如果func为None,作用同zip()。(变为一个含有几个元组的列表)
        另一个解释,function可以理解为是一个一对一或者多对一的函数,map作用是以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的list。
            1.1>比如要对一个序列中的每个元素进行平方运算:
            map(lamda x:x**2,[1,2,3,4,5])

    '''[1,4,9,16,25]'''

            1.2>在参数存在多个序列时,会依次每个序列中相同位置的元素做参数调用function函数。比如要对两个序列中的元素依次求和。
            map(lambda x,y:x+y,[1,3,5,7,9],[2,4,6,8,10])

    '''[3,7,11,15,19]'''

            注意:function函数的参数数量,要和map中提供的集合数量相匹配,如果集合长度不等,会以最小长度对所有集合进行截取。
            1.3>当函数为None是,操作和zip相似
            map(None,[1,3,5,7,9],[2,4,6,8,10])

    '''[(1,2),(3,4),(5,6),(7,8),(9,10)]'''

    filter函数

    filter函数会对序列执行过滤操作。
    1.定义
        filter(function or None,sequence)------>list,tuple ,or string
    function是一个谓语函数,接受一个参数,返回布尔值TRUE或FALSE。
    filter函数会对序列参数sequence中的每个参数调用function函数,最后返回的结果为TRUE的元素,返回值的类型和参数sequence的类型相同。
    2.例子
    def is_even(x):
        return x&1  !=  0
    filter(is_even,[1,2,3,4,5,6,7,8,9,10])
    结果:

    '''[1,3,5,7,9]'''

    reduce 函数

    1.定义:reduce(function,sequence[,initial]) --->value
    function参数一个有两个参数的函数,reduce依次从sequence中去一个元素,和上一次调用function的结果做参数在此调用function。
    第一次调用function时,如果提供initial参数,会以sequence中第一个元素和initial作为参数调用function,否则会以序列sequence中前两个元素做参数调用function。
    注意:function函数不能为None
    reduce(lambda x,y:x+y,[2,3,4,5,6],1)

    '''21 ((((((1+2)+3)+4)+5)+6)'''

    reduce(lambda x,y:x+y,[2,3,4,5,6])

    '''20'''

    Monkey
  • 相关阅读:
    详解JavaScript中的this
    java静态代理与动态代理简单分析
    BZOJ1263 [SCOI2006]整数划分
    BZOJ1258 [CQOI2007]三角形
    BZOJ1237 [SCOI2008]配对
    BZOJ1257 [CQOI2007]余数之和
    BZOJ1103 [POI2007]大都市
    BZOJ1061 [NOI2008]志愿者招募
    BZOJ1050 [HAOI2006]旅行
    BZOJ1055 [HAOI2008]玩具取名
  • 原文地址:https://www.cnblogs.com/monkeyT/p/9709565.html
Copyright © 2011-2022 走看看