当前位置: 首页 > news >正文

Python中的匿名函数详解(lambda)

        Python支持的匿名函数,更多的地方称之为lambda函数。lambda函数在数据分析中使得数据处理非常简洁和方便。

        lambda函数由单条语句组成,其结果就是返回值,该函数由关键词lambda定义,表名匿名函数的开始。

        下面我们从一个简单的例子开始,说明匿名函数(lambda的简洁性)。假定有10个整数的数组a=[1,2,3,4,5,6,7,8,9,10],求数组a每个数值的平方。定义一个常规函数的话,如下:

  • a=[1,2,3,4,5,6,7,8,9,10]
    def fuc_s(a):for i in a:print(i**2)
    fuc_s(a)
  • 1
    4
    9
    16
    25
    36
    49
    64
    81
    100

上述功能用匿名函数实现如下:

  • a=[1,2,3,4,5,6,7,8,9,10]
    func_a=lambda x:x**2
    print(list(func_a(i) for i in a))
  • [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

        可以看到匿名函数lambda要简洁很多。lambda的语法格式:lambda 参数列表:表达式

其中,参数列表可以是多个参数。

(1)一个参数:如     s=lambda x:x**2

  • x=int(input('输入一个数字求平方:'))
    s=lambda x:x**2
    print(s(x))
  • 输入一个数字求平方:9
    81
    

(2)多个参数:如     s=lambda:x,y:x*y

  • x,y=map(int,input('输入两个数字求x的y次方:').split())
    s=lambda x,y:x**y
    print(s(x,y))
  • 输入两个数字求x的y次方:3 4
    81
    

(3)匿名函数中加上条件判断: 如  min=lambda x,y:x if x<y else y

  • x,y=map(int,input('输入两个数x,y求最小值:').split())
    min=lambda x,y:x if x<y else y
    print(min(x,y))
  • 输入两个数x,y求最小值:23 44
    23
    

(4)Lambda 只能访问自身参数,无法直接使用外部变量(需通过参数传递)

(5)lambda与def定义函数的大致比较如下:

特性Lambda 函数def 函数
名称匿名显式命名
表达式仅限一个允许多语句
返回值自动返回表达式结果需显式 return
文档字符串不支持支持
适用场景简单逻辑复杂逻辑
外部变量不能使用(需传递)可以使用

http://www.xdnf.cn/news/1386541.html

相关文章:

  • 无人机固件升级与技术要点解析
  • 命令行操作:逻辑运算符、重定向与管道
  • Cesium 入门教程(十二):时间动画实例
  • AI共链·智存未来 | 绿算技术受邀出席华为AI SSD发布会
  • 预测模型及超参数:3.集成学习:[1]LightGBM
  • TDengine 3.3.7.0 新增性能基准工具 taosgen
  • Django开发规范:构建可维护的AWS资源管理应用
  • LRU 内存淘汰策略
  • 扩展中国剩余定理脚本(恢复密文c)
  • 匠心传承,古韵新生——记木雕名家龙巍的艺术人生
  • Android 打包适配15 版本(api 35)问题处理
  • 【观成科技】蔓灵花User下载者加密通信分析
  • 微硕WINSOK高性能NP沟道MOS管WSP4067在Type-C双向快充电源管理系统中的应用
  • 美摄科技受邀参加2025中关村论坛年会,以超高清车载影像技术赋能智慧出行新体验!
  • 4x12G-SDI(四链接12G-SDI)
  • Lambda 表达式在 PyQt/PySide 中的应用
  • 突破传统企业组网瓶颈:某科技公司智能组网服务项目深度解析
  • Docker部署单节点使用KRaft存储数据的Kafka与可视化界面Kafka-Map
  • 解决多种类潮湿敏感元器件的多温度、多时长的排潮烘干
  • 网络编程 04:TCP连接,客户端与服务器的区别,实现 TCP 聊天及文件上传,Tomcat 的简单使用
  • CVPR 强化学习模块深度分析:连多项式不等式+自驾规划
  • 判断语句中std::cin隐式转换为bool--重载operator bool()
  • 外卖大战之后,再看美团的护城河
  • autojs RSA加密(使用public.pem、private.pem)
  • IAR工程如何生成compile_commands.json文件(能生成但是clangd不能生成“.cache文件”)
  • 水质溶解氧检测仪:用于测量水体中溶解氧浓度的专业设备
  • Partner 类开发:会议参与者可视化控件
  • Excel Word Pdf 格式转换
  • 深入解析Qt节点编辑器框架:高级特性与性能优化(四)
  • Kafka 副本同步异常与 ISR 收缩故障排查实录