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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于Android多按钮切换的例子!

    关于Android多按钮切换的例子!

    2022年3月12日
    43
  • 【毕设狗】【单片机毕业设计】基于单片机的温控风扇的设计–仿真设计[通俗易懂]

    【毕设狗】【单片机毕业设计】基于单片机的温控风扇的设计–仿真设计[通俗易懂]实物链接:基于单片机的温控风扇的设计-实物设计软件安装:Keil:点击下载 Proteus:点击下载 AD:点击下载 Visio:点击下载设计简介:本设计是基于单片机的温控风扇设计,主要实现以下功能:可实现通过DS18B20测量当前环境温度 可实现通过温度自动控制风扇转速 可实现通过按键设置不同风速对应的温度 可实现通过按键切换自动、手动模式 可实现在手动模式下通过按键调整风扇转速 可实现通过LCD1602显示温度、风扇转速挡位、自动/手动模式关键字:温度控制风扇

    2022年9月1日
    10
  • Django(23)Django限制请求装饰器

    Django(23)Django限制请求装饰器前言有时候,我们想要限制访问的请求方法,比如我们希望用户只能通过get方式请求,post不允许,那么我们可以采用装饰器的方式,django已经为我们提供了内置的装饰器限制请求装饰器Django内

    2022年7月28日
    16
  • JavaScript数组-冒泡排序

    JavaScript数组-冒泡排序数组的冒泡排序算法也算一道经典面试题了,这里也给大家分享一下JavaScript中关于数组的冒泡排序的写法和思路:先给大家上代码:<script>//冒泡排序:将数组中的数字按照从大到小或从小到大的顺序排序vararr=[2,4,5,1,3];for(vari=0;i<arr.length-1;i++){//外层循环管趟数,即数组的全部项数都排好一共需要比较多少次一趟排好一个,注意趟

    2022年5月18日
    40
  • 史上最强 Java 学习路线图!

    网上看到一首诗:“代码尽头谁为峰,一见秃头道成空。编程修真路破折,一步一劫渡飞升。”感觉还挺有意境的。第一部分:Java基础篇这个阶段就是编程入门,掌握Java这门编程语言的基本语法,为后面的修行之路打好基础。包括的知识点有:环境搭建——IntellijIDEA一站式搞定Java基础语法面向对象——封装、继承、多态数组字符串集合框架IO反射注解网络编程并发编程这方面的资源我给大家梳理下:1)针对IntellijIDEA,GitHub上有一份简体中文版教

    2022年4月11日
    68
  • C++——STL中三种顺序容器的简要差别「建议收藏」

    C++——STL中三种顺序容器的简要差别

    2022年1月19日
    54

发表回复

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

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