python的lambda表达式详细讲解

python的lambda表达式详细讲解前言:Lambda表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象,是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包。缺点:只有一个运算式,不适用于复杂的计算。不够直观,难于理解,增加了维护成本python的lambda可以和java中的stream流一样,可以将lambda函数作为参数传递给其他函数比如说结合map、filter、sorted、reduce等一些Python内置函数使用接下来我们用代码来演示一下lambda(1)简单用法

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

前言:

作者:神的孩子在歌唱

大家好,我叫智

Lambda 表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象,是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包。

  1. 而且Lambda表达式非常好用,可以让代码简单、简洁

请添加图片描述

图片来源:https://zhidao.baidu.com/question/527678293777168765.html?fr=iks&word=python%D6%D0%B5%C4lambada%B0%D9%B6%C8&ie=gbk&dyTabStr=MCw1LDEsNiw0LDMsNyw4LDIsOQ==

  1. 缺点:只有一个运算式,不适用于复杂的计算。不够直观,难于理解,增加了维护成本

  2. python的lambda可以和java中的stream流一样,可以将lambda函数作为参数传递给其他函数比如说结合map、filter、sorted、reduce等一些Python内置函数使用

  3. 接下来我们用代码来演示一下lambda

    (1)简单用法

    # 求两数之和
    sum = lambda a, b: a + b
    print(sum(1,2))
    

请添加图片描述

(2)将lambda作为函数返回

# 作为函数
def sum(a):
    return lambda b:a + b
a = sum(3)
print(a(4))

请添加图片描述

解释:这里定义了一个sum函数,返回了一个lambda表达式。其中lambda表达式获取到了上层def作用域的变量名a的值。x是sum函数的返回值,x(4),即是调用了sum返回的lambda表达式

​ (3)在处理一个可迭代对象如列表,字典等时,可以用map(lambda, x) 代替 for…in…循环

# 将列表中的每个数翻倍
lis = [2,5,6]
print(list(map(lambda x:x*x, lis)))

请添加图片描述

map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

map讲解:https://www.runoob.com/python/python-func-map.html

​ (4)filter过滤

lis = [2,5,6]
x = filter(lambda x: x > 3, lst)
print('大于3的数字有:', list(x)) 

请添加图片描述

​ (5)reduce累乘

from functools import reduce
x = reduce(lambda x, y: x * y, lis)
print('累乘结果为:', x) 

请添加图片描述

reduce函数的作用是将序列的前两个元素与给定的函数联合使用,并将它们的返回值和下一个元素继续联合使用,直到整个序列处理完毕,并最终得到一个结果。

用法:https://www.runoob.com/note/26811

​ (6)sorted排序

d = {'a': 25, 'c': 27, 'b': 20, 'd': 22}
b = sorted(d.items(), key=lambda x: x[1])
print(b)  

请添加图片描述

sorted用法:https://www.runoob.com/python3/python3-func-sorted.html

参考文章:

Python Lambda函数使用总结详解:https://www.jb51.net/article/176156.htm

Python3 lambda函数高级用法:https://www.cnblogs.com/luwei0915/p/14606717.html

本人csdn博客:https://blog.csdn.net/weixin_46654114

转载说明:跟我说明,务必注明来源,附带本人博客连接。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • VMware虚拟机怎么卸载_虚拟机系统进入安全模式

    VMware虚拟机怎么卸载_虚拟机系统进入安全模式vmware是一款主流的虚拟机软件,很多小伙伴都会在电脑上安装这款虚拟机软件,方便用户在里面模拟出多台虚拟机。如果不想用了要如何卸载呢?下面就来看看详细的卸载教程。在应用管理界面软件列表中找到VMware,点击【卸载】按钮即可。在桌面左下角win图标上右键鼠标点击【设置】按钮。在打开的Windows设置面板中点击【应用】选项。…

    2022年8月31日
    3
  • python中关于if-else使用性能的一点感悟

    python中关于if-else使用性能的一点感悟

    2021年11月19日
    48
  • 基于流水线的CPU的设计「建议收藏」

    基于流水线的CPU的设计「建议收藏」1.我们知道,CPU是电脑的中央处理单元,CPU到底是怎么连续的执行指令的。我们以MIPS为例,探究一下。2.基础的知识我们需要知道,CPU执行一条指令时分为五个阶段的:(1)在内存取指令(2)根据指令读寄存器(3)利用寄存器中的数据ALU(4)访问内存(5)写寄存器。一般是这五个阶段,但是很多指令并不是说这五个阶段全部都在做事情。比如add,它只有四个阶段,其中不涉及到内存的访问。但是,又有…

    2022年8月14日
    5
  • matlab设计模拟带通滤波器

    matlab设计模拟带通滤波器简单记录下在matlab上如何设计出模拟的带通滤波器,包括:巴特沃斯滤波器、切比雪夫I型滤波器、切比雪夫II型滤波器、椭圆型滤波器。代码如下:%设计带通滤波器%巴特沃斯、切比雪夫I型、切比雪夫II型

    2022年7月2日
    22
  • inputstream.read() 方法 乱码_InputStreamReader

    inputstream.read() 方法 乱码_InputStreamReadernewInputStreamReader(request.getInputStream(),“UTF-8”)引起了乱码,改为newInputStreamReader(newBufferedInputStream(request.getInputStream()))后解决了乱码问题针对这个乱码问题,在网上搜索后有以下3种情况[1]数据库表里面字符集设置错误[2]由于未加编码过滤器导致SpringMVC接收参数时造成的乱码[3]代码中涉及byte数组转换String时出现了问题一、解

    2022年9月26日
    4
  • 如何在select标签中使用a标签跳转页面

    如何在select标签中使用a标签跳转页面

    2021年11月3日
    39

发表回复

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

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