zoukankan      html  css  js  c++  java
  • Python中lambda表达式

    Python中lambda表达式

    1.lambda的应⽤用场景

    如果一个函数有一个返回值,并且只有一句代码,可以使用 lambda简化。

    2. lambda语法

    lambda 参数列列表 : 表达式 
    

    注意:

    • lambda表达式的参数可有可⽆无,函数的参数在lambda表达式中完全适用。
    • lambda函数能接收任何数量的参数但只能返回一个表达式的值

    3.示例

    # 函数
    def fn1():
    	return 200
    print(fn1)
    print(fn1())
    
    # lambda表达式
    fn2 = lambda: 100
    print(fn2)
    print(fn2())
    

    image-20200914194914287

    注意:直接打印lambda表达式,输出的是此lambda的内存地址

    4.示例:计算a + b

    4.1函数实现

    def add(a, b):
    	return a + b
    	
    result = add(1, 2)
    print(result)
    

    4.2lambda实现

    print((lambda a, b: a + b)(1, 2)) 
    

    image-20200914195306512

    4.3lambda的参数形式

    4.3.1无参数

     print((lambda: 100)()) 
    

    image-20200914195408392

    4.3.2一个参数

    print((lambda a: a)('hello world'))
    

    image-20200914195536023

    4.3.3默认参数

    print((lambda a, b, c=100: a + b + c)(10, 20))
    

    image-20200914195704153

    4.3.4可变参数:**args

    print((lambda *args: args)(10, 20, 30)) 
    

    image-20200914195808977

    注意:这里的可变参数传入到lambda之后,返回值为元组。

    4.3.5可变参数:**kwargs

    print((lambda **kwargs: kwargs)(name='python', age=20)) 
    

    5.lambda的应用

    5.1带判断的lambda

    print((lambda a, b: a if a > b else b)(1000, 500)) 
    

    5.2 列表数据按字典key的值排序

    students = [
    	{'name': 'TOM', 'age': 20},
    	{'name': 'ROSE', 'age': 19},
    	{'name': 'Jack', 'age': 22}
    			]
    # 按name值升序排列列
    students.sort(key=lambda x: x['name'])
    print(students)
    
    # 按name值降序排列列
    students.sort(key=lambda x: x['name'], reverse=True)
    print(students)
    
    # 按age值升序排列列
    students.sort(key=lambda x: x['age'])
    print(students)
    
  • 相关阅读:
    Xcode 8.2 想使用插件 怎么办? 教你科学的使用插件
    JSAPI_Ticket签名
    Java中HashMap,LinkedHashMap,TreeMap的区别[转]
    微信支付开发,再次签名,APP调用
    微信支付开发,统一下单
    android studio安装插件
    java实现mysql数据库的备份及还原
    java项目中读取src目录下的文件
    eclipse增加浏览器chrome
    cd 命令
  • 原文地址:https://www.cnblogs.com/James-221/p/13669049.html
Copyright © 2011-2022 走看看