Python学习:map函数,filter函数,reduce函数

系统 1367 0

map函数

map(func, *iterables) --> map object

  • 参数function 传的是一个函数名,可以是python内置的,也可以是自定义的。
  • 参数iterable 传的是一个可以迭代的对象,例如列表,元组,字符串这样的。

处理序列中的的每个元素,得到的结果是一个‘列表+’,该列表的元素个数及位置与原来的一样;

            
              a
              
                =
              
              
                (
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                )
              
              
b
              
                =
              
              
                [
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ]
              
              

la
              
                =
              
              
                map
              
              
                (
              
              
                lambda
              
               x
              
                :
              
              x
              
                +
              
              
                1
              
              
                ,
              
              a
              
                )
              
              
lb
              
                =
              
              
                map
              
              
                (
              
              
                lambda
              
               x
              
                :
              
              x
              
                **
              
              
                2
              
              
                ,
              
              b
              
                )
              
              
                print
              
              
                (
              
              
                list
              
              
                (
              
              la
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                list
              
              
                (
              
              lb
              
                )
              
              
                )
              
            
          
            
              输出:
[2, 3, 4, 5, 6]
[1, 4, 9, 16, 25]

            
          

filter函数

filter(function or None, iterable) --> filter object
对sequence中的item依次执行function(item),将执行结果为True的item组成一个list/String/Tuple(取决于sequence的类型)返回;

            
              people
              
                =
              
              
                [
              
              
                {
              
              
                'name'
              
              
                :
              
              
                'alex'
              
              
                ,
              
              
                'age'
              
              
                :
              
              
                24
              
              
                }
              
              
                ,
              
              
                {
              
              
                'name'
              
              
                :
              
              
                'hu'
              
              
                ,
              
              
                'age'
              
              
                :
              
              
                23
              
              
                }
              
              
                ,
              
              
                {
              
              
                'name'
              
              
                :
              
              
                'gu'
              
              
                ,
              
              
                'age'
              
              
                :
              
              
                18
              
              
                }
              
              
                ]
              
              
                print
              
              
                (
              
              
                list
              
              
                (
              
              
                filter
              
              
                (
              
              
                lambda
              
               p
              
                :
              
              p
              
                [
              
              
                'age'
              
              
                ]
              
              
                <=
              
              
                20
              
              
                ,
              
              people 
              
                )
              
              
                )
              
              
                )
              
              
                # 输出:[{'name': 'gu', 'age': 18}]
              
            
          

reduce函数

reduce(function, sequence[, initial]) -> value

  • function – 函数,要有两个参数
  • iterable – 可迭代对象
  • initializer – 可选,初始参数

需要导入模块 from functools import reduce

            
              
                >>
              
              
                >
              
              
                def
              
               add
              
                (
              
              x
              
                ,
              
               y
              
                )
              
              
                :
              
              
                # 两数相加
              
              
                .
              
              
                .
              
              
                .
              
              
                return
              
               x 
              
                +
              
               y

              
                .
              
              
                .
              
              
                .
              
              
                >>
              
              
                >
              
              
                reduce
              
              
                (
              
              add
              
                ,
              
              
                [
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ]
              
              
                )
              
              
                # 计算列表和:1+2+3+4+5
              
              
                15
              
              
                >>
              
              
                >
              
              
                reduce
              
              
                (
              
              
                lambda
              
               x
              
                ,
              
               y
              
                :
              
               x
              
                +
              
              y
              
                ,
              
              
                [
              
              
                1
              
              
                ,
              
              
                2
              
              
                ,
              
              
                3
              
              
                ,
              
              
                4
              
              
                ,
              
              
                5
              
              
                ]
              
              
                )
              
              
                # 使用 lambda 匿名函数
              
              
                15
              
            
          

== reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5). ==


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论