zoukankan      html  css  js  c++  java
  • lambda()函数 分类: python 20121227 18:01 569人阅读 评论(0) 收藏

    摘抄:

    lambda函数也叫匿名函数,即,函数没有具体的名称。先来看一个最简单例子:

    def f(x):
      return x**2
    print f(4)


    Python中使用lambda的话,写成这样

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


    多个参数的:
    m = lambda x,y,z: (x-y)*z
    print m(3,1,2)
    结果是4


    lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值。lambda语句构建的其实是一个函数对象,见证一下:

    g = lambda x : x**2
    print g
    <function <lambda> at 0x00AFAAF0>


    Python中,也有几个定义好的全局函数方便使用的,他们就是filter, map, reduce。

    >>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
    >>>
    >>> print filter(lambda x: x % 3 == 0, foo)
    [18, 9, 24, 12, 27]
    >>>
    >>> print map(lambda x: x * 2 + 10, foo)
    [14, 46, 28, 54, 44, 58, 26, 34, 64]
    >>>
    >>> print reduce(lambda x, y: x + y, foo)
    139


    在对象遍历处理方面,其实Python的for..in..if语法已经很强大,并且在易读上胜过了lambda。比如上面map的例子,可以写成:

    print [x * 2 + 10 for x in foo]

    非常的简洁,易懂。



    #lambda加参数

    g = lambda x : x *2
    print g(3)
     
    ===================================
    #lambda不加参数

    a = lambda : 5  #没有参数
    print a()
     
     
    def callback(i):
        print i
     
    b = lambda : callback(10)
    b()


  • 相关阅读:
    httpclient + TestNG 接口自动测试 第二章
    httpclient + TestNG 接口自动测试 第一章
    Kafka-manager启动命令
    多台服务器搭建Spark集群
    Scala学习 -- 基础语法
    Spark学习 -- RDD
    Spark 学习
    Angular constructor和OnInit的区别和适用场景
    TypeScript基础学习 —— 变量声明
    TypeScript基础学习 —— 基础类型
  • 原文地址:https://www.cnblogs.com/think1988/p/4628255.html
Copyright © 2011-2022 走看看