Skip to content
SRE运维进阶之路SRE运维进阶之路
github icon
    • 1 Python 简介

      • 1.1 初识Python
        • 1.2 Python 代码规范
          • 1.3 Python 虚拟环境
            • 1.4 使用 vscode 打造 python 开发环境
              • 1.5 pypi 配置国内镜像
              • 2 Python 基础

                • 2.1 Python基础语法
                  • 2.2 程序控制
                    • 2.3 Python数据类型

                      • 2.3.1 数值型
                        • 2.3.2 字符串 str
                          • 2.3.3 字节序列
                            • 2.3.4 列表 list & 元组 tuple
                              • 2.3.5 集合 set & 字典 dict
                            • 3 高级特性

                              • 3.1 线性结构特征 可迭代 & 切片
                                • 3.2 列表、集合、字典解析式
                                  • 3.3 生成器
                                    • 3.4 迭代器
                                    • 4 函数

                                      • 4.1 函数的定义 & 调用 & 返回值
                                        • 4.2 函数参数
                                          • 4.3 作用域
                                            • 4.4 递归函数
                                            • 5 函数式编程

                                              • 5.1 高阶函数
                                                • 5.2 返回函数
                                                  • 5.3 匿名函数
                                                    • 5.4 装饰器
                                                      • 5.5 偏函数
                                                      • 6 模块

                                                        • 6.1 Python 模块常用的几种安装方式
                                                          • 6.2 Python 的 setup.py 详解
                                                          • 7 IO编程

                                                            • 7.1 操作文件和目录
                                                              • 7.2 序列化和反序列化
                                                              • 8 异常、调试和测试

                                                                • 8.1 异常处理
                                                                • 9 面向对象编程

                                                                  • 9.1 类、实例和封装
                                                                    • 9.2 访问控制和属性装饰器
                                                                      • 9.3 继承、多态和Mixin
                                                                      • 10 进程和线程

                                                                        • 10.1 多进程
                                                                          • 10.2 多线程
                                                                            • 10.2 线程同步
                                                                            • 11 网络编程

                                                                              • 11.1 SocketServer
                                                                                • 11.2 TCP 编程
                                                                                • 11 魔术方法
                                                                                  • 17 IO 模型
                                                                                    • python 实际工作中的实例
                                                                                    • 前端学习笔记

                                                                                      5.3 匿名函数

                                                                                      author iconClaycalendar icon2021年6月17日category icon
                                                                                      • Python
                                                                                      timer icon大约 1 分钟

                                                                                      # 5.3 匿名函数

                                                                                      Python 中,匿名函数也叫 lambda 表达式。

                                                                                      匿名:隐藏名字,即没有名称

                                                                                      匿名函数:没有名字的函数。

                                                                                      函数没有名字该如何定义?函数没有名字如何调用?

                                                                                      Lambda 表达式

                                                                                      Python中,使用 Lambda 表达式构建匿名函数。

                                                                                      def foo(x):
                                                                                          return x ** 2
                                                                                      lambda x: x ** 2 # 定义
                                                                                      a = (lambda x: x ** 2)(4) # 调用
                                                                                      print(a)
                                                                                      foo = lambda x,y: (x+y) ** 2 # 定义函数
                                                                                      print(foo(1, 2))
                                                                                      # 等价于
                                                                                      def foo(x,y):
                                                                                          return (x+y) ** 2
                                                                                      
                                                                                      1
                                                                                      2
                                                                                      3
                                                                                      4
                                                                                      5
                                                                                      6
                                                                                      7
                                                                                      8
                                                                                      9
                                                                                      10
                                                                                      • 使用 lambda 关键字定义匿名函数,格式为 lambda [参数列表]: 表达式
                                                                                      • 参数列表不需要小括号。无参就不写参数
                                                                                      • 冒号用来分割参数列表和表达式部分
                                                                                      • 不需要使用return。表达式的值,就是匿名函数的返回值。表达式中不能出现等号
                                                                                      • Python的lambda表达式(匿名函数)只能写在一行上,也称为单行函数

                                                                                      匿名函数往往用在为高阶函数传参时,使用 lambda 表达式,往往能简化代码

                                                                                      # 返回常量的函数
                                                                                      print((lambda :3)())
                                                                                      
                                                                                      # 加法匿名函数,带缺省值
                                                                                      print((lambda x, y=3: x + y)(5))
                                                                                      print((lambda x, y=3: x + y)(5, 6))
                                                                                      
                                                                                      # keyword-only参数
                                                                                      print((lambda x, *, y=30: x + y)(5))
                                                                                      print((lambda x, *, y=30: x + y)(5, y=10))
                                                                                      
                                                                                      # 可变参数
                                                                                      print((lambda *args: (x for x in args))(*range(5))) # 生成器
                                                                                      print((lambda *args: [x+1 for x in args])(*range(5))) # 列表
                                                                                      print((lambda *args: {x%2 for x in args})(*range(5))) # 集合
                                                                                      print((lambda *args: {str(x):x for x in args})(*range(5))) # 字典
                                                                                      
                                                                                      print(dict(map(lambda x: (chr(65+x), 10-x), range(5)))) # 高阶函数,构建字典
                                                                                      
                                                                                      d = dict(map(lambda x: (chr(65+x), 10-x), range(5))) # 高阶函数
                                                                                      a = sorted(d.items(), key=lambda x:x[1])
                                                                                      print(a)
                                                                                      
                                                                                      1
                                                                                      2
                                                                                      3
                                                                                      4
                                                                                      5
                                                                                      6
                                                                                      7
                                                                                      8
                                                                                      9
                                                                                      10
                                                                                      11
                                                                                      12
                                                                                      13
                                                                                      14
                                                                                      15
                                                                                      16
                                                                                      17
                                                                                      18
                                                                                      19
                                                                                      20
                                                                                      21
                                                                                      22
                                                                                      edit icon编辑此页open in new window
                                                                                      上次编辑于: 2021/6/23 03:47:00
                                                                                      贡献者: clay-wangzhi
                                                                                      上一页
                                                                                      5.2 返回函数
                                                                                      下一页
                                                                                      5.4 装饰器
                                                                                      备案号:冀ICP备2021007336号
                                                                                      Copyright © 2023 Clay