zoukankan      html  css  js  c++  java
  • 学习python -- 第021天 lambda表达式(匿名函数)

    简介

    对于定义一个简单的函数,Python 还提供了另外一种方法,即 lambda 表达式。

    lambda 表达式,又称匿名函数,常用来表示内部仅包含 1 行表达式的函数。如果一个函数的函数体仅有 1 行表达式,则该函数就可以用 lambda 表达式来代替。

    lambda 表达式的语法格式如下:

    name = lambda [list] : 表达式
    

    其中,定义 lambda 表达式,必须使用 lambda 关键字;[list] 作为可选参数,等同于定义函数是指定的参数列表;value 为该表达式的名称。

    该语法格式转换成普通函数的形式,如下所示:

     def name(list):
         return 表达式
     name(list)

    示例

    举个例子,如果设计一个求 2 个数之和的函数,使用普通函数的方式,定义如下:

    def add(x, y):
        return x+ y
    print(add(1,2))

    由于上面程序中,add() 函数内部仅有 1 行表达式,因此该函数可以直接用 lambda 表达式表示:

    add = lambda x,y:x+y
    print(add(3,4))

    另外 对于给一个嵌套在列表里的字典根据年龄排序也可以使用lambda表达式

    alist = [{"name": "a", "age": 20}, {"name": "b", "age": 30}, {"name": "c", "age": 25}]
    alist.sort(key=lambda x: x['age'])
    print(alist)

    总结

    可以这样理解 lambda 表达式,其就是简单函数(函数体仅是单行的表达式)的简写版本。相比函数,lamba 表达式具有以下  2 个优势:

    • 对于单行函数,使用 lambda 表达式可以省去定义函数的过程,让代码更加简洁;
    • 对于不需要多次复用的函数,使用 lambda 表达式可以在用完之后立即释放,提高程序执行的性能。
    认清现实,放弃幻想。 细节决定成败,心态放好,认真学习与工作。
  • 相关阅读:
    set转成toarray()
    list和set的拉拉扯扯的关系
    【转载】VNC和远程桌面的区别
    笔记本最小安装centos7 连接WiFi的方法
    mysql 索引优化 性能调优 锁
    PageHelper 自动去掉排序参数问题
    抽奖算法 百万次抽奖 单线程环境下 约 3.5 秒
    gitlab 安装和使用
    sharding sphere 分表分库 读写分离
    mycat 安装 分表 分库 读写分离
  • 原文地址:https://www.cnblogs.com/jyf2018/p/15204672.html
Copyright © 2011-2022 走看看