Python中的匿名函数(lambda表达式)【建议收藏】

野性酷女 2023-03-03 08:53 68阅读 0赞

前言:本博文主要讲解Python中匿名函数(lambda表达式)的概念与用法。更多知识请访问:深入浅出Python——Python高级语法之函数

文章目录

    • 一、lambda表达式
    • 二、lambda语法
    • 三、lambda体验
    • 四、lambda的参数形式
        1. 无参数
        1. 一个参数
        1. 默认参数
        1. 可变参数:*args
        1. 可变参数:**kwargs
    • 五、lambda的应用
        1. 带判断的lambda
        1. 列表数据按字典key的值排序
    • 六、lambda的特征

一、lambda表达式

lambda表达式,又称匿名函数,是现代各种编程语言争相引入的一种语法,其功能堪比函数,设计却比函数简洁。

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

二、lambda语法

  1. lambda 参数列表 表达式

注意:

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

三、lambda体验

  1. # 函数
  2. def fn1():
  3. return 200
  4. print(fn1)
  5. print(fn1())
  6. # lambda表达式
  7. fn2 = lambda: 100
  8. print(fn2)
  9. print(fn2())

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

示例:计算a + b

  • 函数实现:

    def add(a, b):

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

通过上面这个案例可以看出:需求简单,代码偏多。

  • lambda实现:

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

四、lambda的参数形式

1. 无参数

  1. fn1 = lambda: 100
  2. print(fn1())

2. 一个参数

  1. fn1 = lambda a: a
  2. print(fn1('hello world'))

3. 默认参数

  1. fn1 = lambda a, b, c=100: a + b + c
  2. print(fn1(10, 20))

4. 可变参数:*args

  1. fn1 = lambda *args: args
  2. print(fn1(10, 20, 30))

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

5. 可变参数:**kwargs

  1. fn1 = lambda **kwargs: kwargs
  2. print(fn1(name='python', age=20))

五、lambda的应用

1. 带判断的lambda

  1. fn1 = lambda a, b: a if a > b else b
  2. print(fn1(1000, 500))

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

  1. students = [
  2. { 'name': 'TOM', 'age': 20},
  3. { 'name': 'ROSE', 'age': 19},
  4. { 'name': 'Jack', 'age': 22}
  5. ]
  6. # 按name值升序排列
  7. students.sort(key=lambda x: x['name'])
  8. print(students)
  9. # 按name值降序排列
  10. students.sort(key=lambda x: x['name'], reverse=True)
  11. print(students)
  12. # 按age值升序排列
  13. students.sort(key=lambda x: x['age'])
  14. print(students)

六、lambda的特征

  1. 简洁性,符合了Python的一贯宗旨。
  2. 起到了函数的作用,但未显示函数名称,这就是匿名函数。
  3. 有形参。
  4. 有返回值的。

发表评论

表情:
评论列表 (有 0 条评论,68人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Python匿名函数lambda函数

    匿名函数lambda Python使用lambda关键字创造匿名函数。所谓匿名,意即不再使用def语句这样标准的形式定义一个函数。这种语句的目的是由于性能的原因,在调用时