zoukankan      html  css  js  c++  java
  • python Lambda, filter, reduce and map

    1. lambda 

    The lambda operator or lambda function is a way to create small anonymous functions , i.e. functions without a name.

      可以方便的创造一个函数。比如

      

    def add(x,y):
    
        return x+y
    

      用lambda 写就是

      

    lambda x,y:x+y
    

      非常简洁。这条语句会返回一个函数指针,你可以他赋值,或者配合map ,reduce 等操作。

      比如说想把list [1,2,3,4,5]的每个值的乘2,返回一个list  .

    2. map

      lambda配合map用是最方便的了。

         r = map(func, seq) 

        map接收一个func 指针,然后把函数作用到seq的每个成员上。

      接上面的例子就是 :

      

    map(lambda x:x*2,[1,2,3,4,5])
    [2, 4, 6, 8, 10]

        

    3. Filtering

      和map 类似 ,只不过他是过滤list,也接受一个func的lambda 表达式,然后如果表达式为真就过滤掉。

         filter(function, list)

      

    fib = [0,1,1,2,3,5,8,13,21,34,55]
    filter(lambda x: x % 2, fib)
    [1, 1, 3, 5, 13, 21, 55]
    

      直接过滤掉偶数的项。

      比如说我只要>20的数据

      

    filter(lambda a : a>20 ,fib)
    

      分分钟过滤!

    4.Reducing 

      The function reduce(func, seq) continually applies the function func() to the sequence seq. It returns a single value. 

    If seq = [ s1, s2, s3, ... , sn ], calling reduce(func, seq) works like this:

      [ func(s1, s2), s3, ... , sn ]

       [ func(func(s1, s2),s3), ... , sn ]

      持续对list 进行func的操作,最终结果是产生一个数值!

      

    reduce(lambda x,y: x+y, [47,11,42,13])
    113
    

      比如说这个,依次对47,11 进行相加, 变成 [58,42,13] 

        然后再相加 [100,13]

        113

      

  • 相关阅读:
    git fetch 和git pull 的差别
    解决npm install安装慢的问题
    Git本地分支和远程分支关联
    phalapi 2.14 使用(一)增加顶级命名空间、调整返回结构字段
    vue-element-template实战(五) 获取后端路由表动态生成权限
    vue-element-template实战(四)使用mock数据,新增用户管理界面
    使用phalapi 2.14版本的问题及解决办法
    关于vue
    git详细操作
    三次握手四次挥手理解
  • 原文地址:https://www.cnblogs.com/gqdw/p/3951126.html
Copyright © 2011-2022 走看看