zoukankan      html  css  js  c++  java
  • lambda的用法和语法

    1、什么是lambda函数
    ambda是匿名函数,使用lambda可节省函数名称。
    lambda argument_list: expression
    lambda是Python预留的关键字,argument_list和 expression由用户自定义。
    冒号前是参数,可以有多个,用逗号隔开,冒号右边是函数体的返回值
    g = lambda x,y : x+y
    print g(1,2)
    与函数等同:
    def f(x,y):
    return x+y
    print f(1,2)

    2、lambda的特点:
    1)、lambda有输入和输出。输入是传入到argument_list的值,输出是函数计算出的值。
    2)、lambda没有函数名。绝大多数lambda函数作为一个参数传给一个需要函数对象为参数的函数,比如map,reduce,filter等。

    3、lambda应用
    1)、filter()
    filter()函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
    语法: filter(function,iterable)
    filter函数返回一个list,但与map函数不同的是,filter函数只能有一个iterable作为输入.
    返回值:最后将判断函数返回 True 的元素放到新列表中。
    a = [1, 2, 3, 4, 5, 6]
    list(filter(lambda x : x % 2 == 0, a))
    #Output: [2, 4, 6]
    2)、map() 
    map() 会根据提供的函数对指定序列做映射。
    语法:map(function, iterable1, iterable2, ...)
    返回值:第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
    list(map(lambda x: x+2, [1,2,3,4]))
    #Output:[3,4,5,6]
    list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))
    #Output:[3, 7, 11, 15, 19]
    3)、reduce()
    reduce() 函数会对参数序列中元素进行累积。
    语法: reduce(function,iterable[,initializer])
    返回值:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,返回最后得到一个结果。
    reduce(lambda x, y: x+y, [1,2,3,4,5]) 
    # Output:15

  • 相关阅读:
    Scite 编辑器及其相关项目介绍
    cmake 常用指令入门指南
    C++中的POD类型
    引用折叠、万能引用和完美转发那些事
    c++的对象初始化
    C++类对象的内存布局
    effective C++ 读书精华笔记提取
    c/c++的const说明符——深入挖掘
    gdb调试器—常用知识(一)
    g++/gcc编译器——常用知识(一)
  • 原文地址:https://www.cnblogs.com/dcpb/p/13204571.html
Copyright © 2011-2022 走看看