Python——lambda表达式(匿名函数)详解

    技术2023-10-25  109

    1. Lambda应用场景

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

    2. lambda语法

    注意事项:

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

    3. 体验lambda

    # 1.函数 def fn1(): return 100 # 2.lambda fn2 = lambda:100 print(fn2) # fn2函数的内存地址 print(fn2()) # 100

    4. lambda参数形式

    4.1 无参数

    fn1 = lambda:100 print(fn1()) # 100

    4.2 一个参数

    fn1 = lambda a : a print(fn1("hello")) # "hello"

    4.3 默认参数(缺省参数)

    fn1 = lambda a,b,c=100:a+b+c print(fn1(1,2)) # 103

    4.4 参数*args

    fn1 = lambda *args:args print(fn1(1,2,3)) # (1,2,3)

    4.5 参数**kwargs

    fn1 = lambda **kwargs : kwargs print(fn1(name='tom',age=20)) # {'name':'tom','age':20}

    5. lambda的应用

    5.1 带判断的lambda

    fn1 = lambda a,b:a if a>b else b print(fn1(1,2)) # 2

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

    列表的sort中的参数key就收一个函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。

    students = [{'name':'tom','age':20}, {'name':'jack','age':10}, {'name':'mike','age':30}] # 按name值升序排列 students.sort(key=lambda x:x['name']) # 按name值降序排列 students.sort(key=lambda x:x['name'],reverse=True)
    Processed: 0.009, SQL: 9