Python 中的 lambda 和「真正的」lambda 有什么区别

区别是:真正的 lambda 就是没有名字的函数,能做到任何普通函数能做到的事情,除了方便地递归调用自己。Python 因为本身设计思想,仅仅将 lambda 定位成一个辅助用的短函数,为了避免使用中为一些临时的小代码专门还要写 def 。

Python 中的 lambda 和「真正的」lambda 有什么区别-Worktile社区

真正的 lambda 就是没有名字的函数,能做到任何普通函数能做到的事情,除了方便地递归调用自己。

Python 因为本身设计思想,仅仅将 lambda 定位成一个辅助用的短函数,为了避免使用中为一些临时的小代码专门还要写 def 。

比如说对复杂的数据结构排序,要用函数选择数据结构中排序的依据数据,那么写一个一次性的函数:

def select(data):

    return data.array[0]

sorted(data, key=select)

明显累赘,lambda 的使用场所就是:

sorted(data, key=lambda x:x.array[0])

除类似此之外不提倡用 lambda,lambda 的局限主要就是为了防止滥用。所以 lambda 只能写一行,不能赋值,内部也不能定义等等等。

这就是 Python 的方法论,虽然 Python 也有常用的函数式工具,但是使用的时候必须要谨慎,不要因为卖弄聪明降低可读性和性能。

另外对于问题补充,Currying 是没有支持的,而且这一堆都是函数式编程的特性,匿名函数和它们是平级的,是函数式编程特性的一部分,不存在从属关系。

延伸阅读:

什么是Lambda

Lambda是计算机编程语言,Lambda表达式是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。

Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。

所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。Lambda 表达式 x => x * x 读作“x goes to x times x”。可以将此表达式分配给委托类型,如下所示:

delegate int del(int i);del myDelegate = x => x * x;int j = myDelegate(5); //j = 25

文章标题:Python 中的 lambda 和「真正的」lambda 有什么区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38522

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月16日 下午11:09
下一篇 2023年2月16日 下午11:13

相关推荐

  • 如何通过看板管理组织企业生产

    通过看板管理组织企业生产:1、设计并制作看板;2、正确使用看板;3、及时整理看板;4、整顿看板;5、清扫、清洁看板。其中,设计并制作看板是看板管理的基础和前提,看板是实现准时生产的工具,它具有计划和调度指令的作用。 1、设计并制作看板 看板是实现准时生产的工具,它具有计划和调度指令的作用,是联系企业…

    2023年1月2日
    45600
  • DevOps能为企业节省多少时间和资源

    在数字化转型的浪潮中,DevOps已经被证明是提升企业效率和节省时间资源的关键策略。DevOps通过1、加强协作与沟通;2、自动化流程;3、持续集成与持续部署(CI/CD);4、快速反馈和迭代的实践,能显著优化软件开发和运营过程。企业通过实施DevOps可节省时间上的成本,其节省百分比可高达20%至…

    2023年11月18日
    27900
  • 管理系统用什么语言开发

    Python提供了高效的编程工具、丰富的库和框架来开发管理系统、Java是企业级应用开发中最常用的语言、C#凭借.NET框架在开发中展现出便利性和高效性,通过这三种语言可以实施具备不同特性和需求的管理系统。特别是Python,凭借其清晰的语法、广泛的社区支持和快速开发能力,在管理系统开发中显得特别受…

    2024年1月9日
    47000
  • scrapy-redis 和 scrapy 有什么区别

    scrapy 是一个 Python 爬虫框架,爬取效率极高,但是不支持分布式。而 scrapy-redis 是一套基于 redis 数据库、运行在 scrapy 框架之上的组件,可以让 scrapy 支持分布式策略, Slaver 端共享 Master 端 redis 数据库里的 item 队列、请…

    2023年1月8日
    66800
  • devops开发流程工具是什么

    DevOps开发流程工具关乎于代码版本控制、持续整合、自动化测试、配置管理等方面,常见如Git、Jenkins、Selenium、Ansible。每一项工具配合DevOps理念,提升软件交付速度与质量。 特别值得关注的是1、Git,它实现了高效的版本控制,保障了开发人员能够合作处理同一个项目而不产生…

    2024年3月26日
    6100
  • 如何进行有效的竞品分析

    竞品分析是企业策划、营销、产品开发的关键步骤。包括理解对手优劣势、市场定位、客户基础、营销策略及产品功能。进行这样的分析最终旨在提升自家产品竞争力、寻找市场机遇并优化客户体验。1、细分市场为明晰竞品范围提供依据。2、数据收集包括财务报告、用户评论、媒体报道等渠道。3、特色对比侧重比较不同产品的特殊功…

    2023年12月19日
    38400
  • 什么是联合查询

    联合查询是可合并多个相似的选择查询的结果集。等同于将一个表追加到另一个表,从而实现将两个表的查询组合到一起,使用谓词为UNION或UNION ALL。在关系型数据库中,通过将两个或多个表格进行合并,以便从这些表中检索出所需的信息。 联合查询是可合并多个相似的选择查询的结果集。等同于将一个表追加到另一…

    2023年6月11日
    59400
  • 为什么vscode很火

    Visual Studio Code(简称VSCode)之所以非常受欢迎,原因在于它轻便快速、拥有强大的代码编辑和调试功能、丰富的插件生态以及跨平台支持。轻便快速、拥有强大的代码编辑和调试功能、丰富的插件生态以及跨平台支持是其主要亮点。以轻便快速为例,对于开发人员来说,开发环境的启动速度和运行效率直…

    2024年4月3日
    5600
  • 如何做好设备项目工作管理

    设备项目工作管理的核心在于系统规划、详尽的准备、紧密的沟通协调、有效的资源分配、严格的监督执行、持续的进度跟踪。在具体实施上展开描述,系统规划对于设备项目成功至关重要,这包括了对项目目标的明确界定、职责分配、时间线的制定、资源与成本的预估、风险评估以及应对策略的制定。通过一个明确的项目计划,能为整个…

    2024年4月10日
    5500
  • 主成分分析在处理降维压缩和降噪时应用的区别是什么

    主成分分析在处理降维压缩和降噪时应用的区别是:1、降维压缩,在降维压缩方面,PCA主要用于减少数据维度,同时保留数据中最重要的信息;2、降噪,在降噪方面,PCA主要用于去除数据中的噪声,提高数据的信噪比。 一、降维压缩 在降维压缩方面,PCA主要用于减少数据维度,同时保留数据中最重要的信息。它通过将…

    2023年7月30日
    66100

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部