python之lambda函数/表达式[通俗易懂]

python之lambda函数/表达式[通俗易懂]lambda函数也叫匿名函数,允许快速定义单行函数。通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。格式lambda与def的区别1)def创建的方法是有名称的

大家好,又见面了,我是你们的朋友全栈君。

lambda函数也叫匿名函数,允许快速定义单行函数。通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。

格式

lambda argument_list: expression

lambda与def的区别

1)def创建的方法是有名称的,而lambda没有;
2)lambda会返回一个函数对象,但这个对象不会赋给一个标志符,而def则会把函数对象赋值给一个变量(函数名);
3)lambda只是一个表达式,而def是一个语句;
4)lambda表达式“:”后面只能有一个表达式,而def则可以有多个;
5)if、for、print等语句不能用于lambda中;
6)lambda一般用于定义简单的函数;
7)lambda函数不能共享给别的程序调用;

lambda使用

1、应用在函数式编程中

Python提供了很多函数式编程的特性,如:map、reduce、filter、sored等函数都支持函数做为参数,lambda函数就可以应用在函数式编程中。

# 需求:将列表中的元素按照绝对值大小进行升序排列
list1 = [3,5,-4,-1,0,-2,-6]
sorted(list1, key=lambda x: abs(x))

2、应用在闭包中

如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。

闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。

def get_y(a,b):
     return lambda x:a*x+b
y1 = get_y(2,1)
y1(2) # 结果为5
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155933.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SpringBoot 源码解读

    SpringBoot 源码解读Springboot之前出现的问题Spring框架需要进行大量的配置项目的依赖管理冲突为什么是SpringBootSpringBoot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。…

    2022年4月30日
    40
  • Android源码中编译自己的so库

    Android源码中编译自己的so库1,首先看看这边文章:http://www.linuxidc.com/Linux/2013-02/79007.htm2,Android使用C/C++调用SO库 有时候,我们反编译apk得到一个so库,如果直接使用这个so库的话,必须使用原来so库同样的package名字,才能用。这样人家反编译你的apk,就知道你侵犯了人家的版权。为了达到混淆的目的,我们可以再写一个so库

    2022年6月17日
    22
  • 最新朋友圈集赞生成器_朋友圈点赞生成器免费

    最新朋友圈集赞生成器_朋友圈点赞生成器免费大家好这是一款朋友圈积攒截图小程序里面内涵三款样式生成,一款图文,一款分享,一款查看的样式也就是我们微信朋友圈所用到的样式就包含了里面的流量主那些可以用户自由的添加哈!赞的数量那些可以用户自定义的哈另外所需的内容也是用户自定义的安装方法的话和往常一样!直接微信开发者工具打开源码然后设置一个合法域名上传审核就可以了合法域名在压缩包里面,搭建解压了就可以看到了小程序源码下载地址:…

    2022年9月5日
    4
  • asp.net response.ContentType 下载文件的四种方法「建议收藏」

    asp.net response.ContentType 下载文件的四种方法「建议收藏」原址:http://www.cnblogs.com/xtgyiq/archive/2009/07/06/1517415.htmlprotectedvoidButton1_Click(objectsender,EventArgse)   { 1 protected void Button1_Click(object sender, Even

    2022年7月19日
    13
  • ACE_Message_Queue和spawn实现(生产者/消费者)(V2.00)

    ACE_Message_Queue和spawn实现(生产者/消费者)(V2.00)

    2022年2月7日
    41
  • httpclient4.x访问https[通俗易懂]

    httpclient4.x访问https[通俗易懂]https有单向认证和双向认证之分,单向认证即客户端只会认证服务端,双向认证是客户端需要认证服务端,服务端也需要认证客户端。先说单向认证,浏览器访问服务端,服务端接收请求,会把证书(包含密钥和其他信息)和加密后响应返回给浏览器。如果这个证书不是向第三方权威机构申请的,浏览器会提示证书有问题(使用httpclient访问的话会报错)。如果忽略错误,则浏览器接受证书并解密响应,发送的数据也用此密钥

    2022年7月22日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号