zoukankan      html  css  js  c++  java
  • python lambda匿名函数的用法

    lambda匿名函数

    用lambda函数首先减少了代码的冗余,其次,用lambda函数,不用费神地去命名一个函数的名字,可以快速的实现某项功能,最后,lambda函数使代码的可读性更强,程序看起来更加简洁。

    lambda函数的语法是唯一的,其形式如下:

    lambda argument_list:expersion
    

    语法中的argument_list是参数列表,它的结构与Python中函数(function)的参数列表是一样的,例如

    a,b
    a=1,b=2
    *args
    **kwargs
    a,b=1,*args
    空
    ....
    

    语法中的expression是一个关于参数的表达式,表达式中出现的参数需要在argument_list中有定义,并且表达式只能是单行的。比如以下的一些合法的表达式

    1
    None
    a+b
    sum(a)
    1 if a >10 else 0
    ......
    

    用法

    1)直接赋给一个变量,然后再像一般函数那样调用

    c=lambda x,y,z:x*y*z
    c(2,3,4)
    
    24
    

    当然,也可以在函数后面直接传递实参

    (lambda x:x**2)(3)
    9
    

    2)将lambda函数作为参数传递给其他函数比如说结合map、filter、sorted、reduce等一些Python内置函数使用,下面举例说明。

    fliter(lambda x:x%3==0,[1,2,3,4,5,6])
    
    [3,6]
    
    
    squares = map(lambda x:x**2,range(5)
    print(lsit(squares))
    [0,1,4,9,16]
    

    3)嵌套使用将lambda函数嵌套到普通函数中,lambda函数本身做为return的值

    def increment(n):
        return lambda x:x+n
    
    f=increment(4)
    f(2)
    6
    

    4)字符串联合,有默认值,也可以用x=(lambda...)这种格式

    x=(lambda x='Boo',y='Too',z='Z00':x+y+z)
    print(x('Foo'))
    
    'FooTooZoo'
    
    
  • 相关阅读:
    SQL优化
    Mybatis
    Spring MVC(总结二)
    ES多机集群配置
    ES索引,分片,一致性
    ElasticSearch关于索引库的命令操作
    试题01(一)
    Linux安装配置elastic search
    Windows安装配置elastic search
    SpringBoot(二)
  • 原文地址:https://www.cnblogs.com/davis12/p/14632146.html
Copyright © 2011-2022 走看看