美文网首页
直观认识python3 lambda、reduce、map、fi

直观认识python3 lambda、reduce、map、fi

作者: 采星星的小太阳BavaLI | 来源:发表于2020-05-29 17:13 被阅读0次

    开门见山:

    lambda

    lambda函数 往往可以方便定义简单的函数,返回一个函数引用。但是复杂的函数还是建议使用def来定义

    g=lambda x:x*2
    g(2)
    

    这里定义了一个函数,它有一个参数x,函数的功能是计算传入参数的平方,所以这里g(2)返回4

    a= lambda x: 'a' if x==1 else 'b'#带if else的lambda,和c语言三目运算一样的思路
    a(1)#'a'
    

    lambda也可多参数

    total = lambda x,y,z:x+y+z#多个参数求和
    total(1,2,3)
    #返回6
    

    map()函数

    它 会将一个函数一一对应映射到序列的每一个元素上,并返回结果。举个直观例子

    x=[1,2,3,4]
    def fun(x):
        return x**2
    list(map(fun,x))
    

    在这里定义一个函数和列表,map有两个重要参数,一个是传入的函数,也就是映射函数,第二个是被映射的对象。上面是计算x列表每一个元素的平方,最后list转化为处理之后的l新的ist


    image.png

    结合lambda:


    image.png

    reduce 函数

    python2直接使用,,python3需要从functools导入
    他也是需要一个函数,函数有两个参数, 先把前俩作为函数参数传入后进行运算,参数运算之后,在把前两个运算的结果在和第三个数在一起作为参数传入函数在进行运算,以此类推,,,,举个例子!

    from functools import reduce
    x=[1,2,3,4]
    def fun(x,y):
        return x+y
    reduce(fun,x)
    

    上面的例子就是对x求和,第一次迭代,把1给x,2给y,计算返回3,之后注意,把3给x,4给y,以此类推!


    image.png

    filter函数 也就是对满足条件的list或者tuple等进行过滤和查找的工作,还是很方便的

    它会根据元素的筛选条件做一个判断,返回True的就被筛选出来了

    list(filter(lambda x:x%2==0,range(21)))
    

    这里就是一个找出0-20之间偶数的语句。是偶数返回TRUE,则被保留,
    好啦,希望能帮助到爱学习的你,整理不易,如果有用,点赞关注。谢谢!

    相关文章

      网友评论

          本文标题:直观认识python3 lambda、reduce、map、fi

          本文链接:https://www.haomeiwen.com/subject/xmkfzhtx.html