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

相关推荐

  • 计算机网络中,Flow和Stream有什么区别

    区别:Flow指一对端点(endpoint)之间双向传输的数据包的集合形成Flow。在互联网领域,有时flow是指五元组<协议类型、源IP地址、目的IP地址、源端口号、目的端口号>相同的数据包。Stream指成对的主机之间独立的IP会话(可以基于TCP也可以基于UDP)。 Flow Fl…

    2023年2月14日
    25600
  • cips与swift系统区别

    cips与swift系统区别在于:1、定义不同;2、划转对象不同;3、处理对象不同;4、主旨不同。CIPS是指人民币跨境支付系统,是专司人民币跨境支付清算业务的批发类支付系统;SWIFT是指环球同业银行金融电信协会,是一个国际银行间非盈利性的国际合作组织。 1、定义不同 CIPS是指人民币跨境支付系…

    2023年1月31日
    29300
  • 开发商项目管理方法有哪些

    开发商项目管理方法有:一、项目管理软件;二、项目管理流程;三、团队协作;四、风险管理;五、质量管理。开发商可以使用项目管理软件,如Microsoft Project、Trello等,来进行项目计划、任务分配、进度跟踪、资源管理等方面的管理工作。 一、项目管理软件 开发商可以使用项目管理软件,如Mic…

    2023年4月30日
    1200
  • 北航投资总经理王剑飞:持炬之人要内观自我

     文| babayage 编辑 | 笑 笑 采访之前,北航投资一位工作人员对《科创人》爆料说,王剑飞是位奇葩的领导者,“他的行程对内部所有人开放,大家都很好奇他是怎么能在高强度工作之余,还有意愿和力气帮助别人,不止是投资对象、商界好友,连员工的情绪波动都关怀得细致入微”。 王剑飞评价自己是一个理性与…

    2022年3月20日
    31300
  • 数据中后和业务中台有什么关系

    主要的关系是:一、业务中台是数据中台重要数据来源;二、业务中台与数据中台相辅相成。业务中台是数据中台的重要数据来源之一,为数据中台源源不断地提供业务数据,比如,交易、行为、客户数据等,而数据中台起着“超级大脑和参谋”的支撑作用。 一、业务中台是数据中台重要数据来源 业务中台是数据中台的重要数据来源之…

    2023年5月28日
    500
  • 哪种适合目标管理

    适合目标管理的有:1、PingCode;2、Worktile;3、Zokri;4、Vision;5、滴答清单;6、Notion。PingCode 是目前国内唯一一款为产研团队专门打造的目标进度管理工具,和其他通用型目标管理工具不同的是,它的目标进度管理实现了与研发全流程的关联。 一、PingCode…

    2023年4月21日
    3000
  • 项目级别怎么划分

    项目级别的划分步骤:1、开始根据业务价值确定项目的优先级;2、通过确定紧急和重要项目来设定优先事项;3、评估自己的带宽;4、学会对项目说不;5、灵活安排项目优先级流程。开始根据业务价值确定项目的优先级,需要与经理、客户或其他利益相关者对话。 1、开始根据业务价值确定项目的优先级 首先查看列表中的每个…

    2023年2月22日
    18400
  • confluence如何使用

    使用步骤:1. 注册与登录;2. 创建空间;3. 创建页面;4. 协作与评论;5. 管理权限;6. 搜索与过滤;7. 集成其他工具。首先您需要注册一个Confluence账号。如果您的公司已经购买了Confluence许可证,那么您可以向管理员索取账号和访问权限。 1. 注册与登录 首先,您需要注册…

    2023年2月27日
    7700
  • App Store怎么切换地区

    App Store切换地区的方法:1、点击帐户页面里的头像;2、输入密码并点击国家地区;3、点击更改进行切换地区。点击帐户页面里的头像是指从主界面进入APP store,进入后再点击右上角的头像,进入帐户页面之后点击头像进入。 一、App Store切换地区的方法 1、点击帐户页面里的头像 点击帐户…

    2023年3月25日
    25300
  • SaaSERP和传统ERP的区别在哪里

    SaaSERP和传统ERP的区别有:1、开发周期、开发费用、实施维护难易程度;2、收费方式;3、灵活性、可扩展性;4、数据处理存储方式。传统ERP开发周期长,开发费用高,实施和维护难度大。 一、开发周期、开发费用、实施维护难易程度 传统ERP开发周期长,开发费用高,实施和维护难度大。而SaaS ER…

    2023年4月29日
    900

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部