细说Python Lambda函数的用法,建议收藏!
摘要:今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式。
名称是用于引用或寻址任何实体的约定。我们周围的几乎所有事物都有名字。编程领域也与此一致。但这是必须命名的吗?还是您可以拥有“匿名”商品?答案是肯定的。Python提供了Lambda函数,也称为匿名函数,实际上是无名的。因此,让我们按以下顺序继续学习Python的这些“匿名之谜”。
- Why are Python Lambda Functions required?
- What are Python Lambda Functions?
- How to write Lambda Functions?
- How do Anonymous functions reduce the size of the code?
- Python Lambda functions within user defined functions
- How to use Anonymous functions within:
- filter()
- map()
- reduce()
因此,让我们开始:)
为什么要使用Python Lambda函数?
当您只需要一次使用某些功能时,匿名功能的主要目的就会显现出来。可以在任何需要的地方创建它们。由于这个原因,Python Lambda函数也称为抛出函数,与其他预定义函数(例如filter(),map()等)一起使用。与普通的python函数。
为了证明这一点,让我们继续学习Python Lambda函数。
什么是Python Lambda函数?
Python Lambda函数是没有任何名称的函数。它们也称为匿名或无名功能。“ lambda”一词不是名称,而是关键字。此关键字指定后面的函数是匿名的。
现在您已经知道这些匿名函数指的是什么,让我们进一步了解一下如何编写这些Python Lambda函数。
如何用Python编写Lambda函数?
使用lambda运算符创建Lambda函数,其语法如下:
句法:
lambda参数:表达式
Python lambda函数可以具有任意数量的参数,但只需要一个表达式。输入或自变量可以从0开始,并可以达到任何限制。就像任何其他函数一样,具有不带输入的lambda函数也很好。因此,您可以使用以下任何格式的lambda函数:
例子:
lambda:“指定目的”
在这里,lambda函数不接受任何参数。
例子:
拉姆达一个1:“指定使用的1 “
在这里,lambda接受一个输入,即1。
同样,您可以具有lambda a 1,a 2,a 3 ..a n。
让我们举几个例子来证明这一点:
范例1:
a = lambda x: x*x
print(a(3))
输出: 9
范例2:
a = lambda x,y: x*y
print(a(3,7))
输出: 21
如您所见,我在这里举了两个例子。第一个示例仅使用带有一个表达式的lambda函数,而第二个示例具有传递给它的两个参数。请注意,两个函数都有一个表达式,后跟参数。因此,在需要多行表达式的地方不能使用lambda函数。
另一方面,普通的python函数可以在其函数定义中使用任意数量的语句。
匿名函数如何减少代码的大小?
在比较所需的代码量之前,让我们首先写下常规函数的语法,然后将其与前面所述的lambda函数的语法进行比较。
Python中的任何常规函数都是使用def关键字定义的,如下所示:
句法:
def function_name(parameters):
语句
如您所见,lambda函数所需的代码量比普通函数少得多。
让我们用现在的普通函数重写前面的示例。
例子:
def my_func(x):
return x*x
print(my_func(3))
输出: 9
如您所见,在上面的示例中,我们需要在my_func中使用return语句来计算3的平方值。相反,lambda函数不使用此return语句,而是使用匿名函数的主体在冒号后跟函数本身写在同一行。因此,函数的大小小于my_func的大小。
但是,上述示例中的lambda函数是使用其他一些变量a调用的。这样做是因为这些函数是无名的,因此需要调用某些名称。但是,当您需要实际分配其他名称来调用它们时,为什么要使用这样的无名函数,这一事实似乎令人困惑?当然,在为我的函数分配名称a之后,它不再不再是无名的了!正确的?
这是一个合理的问题,但重点是,这不是使用这些匿名函数的正确方法。
匿名函数最好在其他将函数用作参数或返回函数作为输出的其他高阶函数中使用。为了证明这一点,让我们现在继续进行下一个主题。
用户定义函数中的Python Lambda函数:
如上文所述,lambda函数可在其他函数中使用,以标记出最大的优势。
以下示例由new_func组成,这是一个带有一个参数x的常规python函数。然后将此参数添加到通过lambda函数提供的未知参数y中。
例子:
def new_func(x):
return(lambda y: x+y)
t=new_func(3)
u=new_func(2)
print(t(3))
print(u(3))
输出:
6
5
如您所见,在上面的示例中,每当我们使用new_func()时,都会调用new_func中存在的lambda函数。每次,我们都可以将单独的值传递给参数。
既然您已经了解了如何在高阶函数中使用匿名函数,那么让我们继续了解它的最流行用法之一是在filter(),map()和reduce()方法中。
如何在filter(),map()和reduce()中使用匿名函数:
filter()中的匿名函数:
筛选():
filter()方法用于在另一个作为参数传递的函数的帮助下,过滤给定的iterables(列表,集合等),以测试所有元素为真还是假。
该函数的语法为:
句法:
过滤器(函数,可迭代)
现在考虑以下示例:
例子:
my_list = [2,3,4,5,6,7,8]
new_list = list(filter(lambda a: (a/3 == 2), my_list))
print(new_list)
输出: [6]
在这里,my_list是可迭代值的列表,该值传递给过滤器函数。此函数使用lambda函数检查列表中是否有任何值(除以3后等于2)。输出由满足匿名函数中存在的表达式的列表组成。
地图():
Python中的map()函数是将给定函数应用于所有可迭代对象并返回新列表的函数。
句法:
地图(函数,可迭代)
让我们以一个示例来演示lambda函数在map()函数中的用法:
例子:
my_list = [2,3,4,5,6,7,8]
new_list = list(map(lambda a: (a/3 != 2), li))
print(new_list)
输出:
[True,True,True,True,False,True,True]
上面的输出显示,只要可迭代变量的值除以3,就不等于2,则返回的结果应为True。因此,对于my_list中的所有元素,当条件更改为False时,它将返回true(除了值6之外)。
减少():
reduce()函数用于将某些其他函数应用于作为参数传递给它的元素列表,并最终返回单个值。
该函数的语法如下:
句法:
减少(功能,顺序)
例子:
from functools import reduce
reduce(lambda a,b: a+b, [23,21,45,98])
下图描述了上面的示例:

输出: 187
输出清楚地表明,列表的所有元素都被连续添加以返回最终结果。
本文分享自华为云社区《从零开始学python | 什么是Lambda函数以及如何使用它们?》,原文作者:Yuchuan 。
细说Python Lambda函数的用法,建议收藏!的更多相关文章
- python lambda表达式简单用法【转】
python lambda表达式简单用法 1.lambda是什么? 看个例子: g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>& ...
- python format()函数的用法
Python format() 函数的用法 复制自博主 chunlaipiupiupiu 的博客,如有侵权,请联系删除 python中format函数用于字符串的格式化 通过关键字 1 print(' ...
- Python eval()函数的用法
Python eval()函数的用法 eval(str)函数很强大,官方解释为:将字符串str当成有效的表达式来求值并返回计算结果.所以,结合math当成一个计算器很好用. eval()函数常见作用有 ...
- C++ lambda函数及其用法(转)
由于接触C++不久,很多东西比较陌生,今天看阿里云OSS的C++ SDK文件下载部分例子,发现有如下lambda表达式用法,故了解一下相关知识 /*获取文件到本地文件*/ GetObjectReque ...
- [编程基础] Python lambda函数总结
Python lambda函数教程展示了如何在Python中创建匿名函数.Python中的匿名函数是使用lambda关键字创建的. 文章目录 1 介绍 1.1 简单使用 1.2 Python lamb ...
- Python Lambda 的简单用法
下面代码简单举例介绍以下 lambda的用法. from functools import reduce #1 python lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符,而de ...
- python - Lambda函数 匿名函数
Lambda 匿名函数 python 使用 lambda 来创建匿名函数. lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda ...
- 【Python从入门到精通】(十一)Python的函数的方方面面【收藏下来保证有用!!!】
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文主要介绍Python的函数,函数的定义,使用,可变参数等等都有详细介绍. 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎 ...
- Python lambda函数
python允许定义单行的小函数,定义lambda函数的形式如下: lambda 参数:表达式lambda函数默认返回表达式的值,可接收任意个参数,包括可选参数,但是表达式只有一个.
- python lambda函数详细解析(面试经常遇到)
1 作用:通常是用来在python中创建匿名函数的 2 格式: lambda 参数[,参数] : 表达式 3 注意: (1)lambda定义的是单行函数, 如果需要复杂的函数,应该定义普通函数 (2) ...
随机推荐
- 监控报警体系:Prometheus和Grafana
总体 prometheus全链路监控报警,在当今云原生时代可观测领域,Prometheus + Grafana 成为可观测性事实标准. 采集数据:运维团队可以使用 Prometheus 监控云原生 K ...
- Gmail如何开启SMTP/POP
1. 登录Gmail账号,右上角点击设置图标 -> 查看所有设置,如图 2. 点击"转发和POP/IMAP",如图 3. 开启IMAP和POP,选择"对所有邮件启用 ...
- .NET 8来了,那就开发一套基于.NET 8的快速开发框架吧,就叫Simple
.NET 8来了,开发一套基于.NET 8的快速开发框架吧,就叫 Simple 点我Star 框架由来 为啥有了那么多开发框架,还得非要再搞个呢,大家都知道很多快速开发框架,啥ABP 啥水果啥的,怎么 ...
- JuiceFS 用户必备的 6 个技巧
随着大数据.AI 技术的发展,越来越多的企业.团队和个人开始使用 JuiceFS,本文整理了 6 个超实用的 JuiceFS 技巧,帮助大家提升 JuiceFS 的管理效率. 一.查看已挂载的文件系统 ...
- LabVIEW基于机器视觉的实验室设备管理系统(1)
目录 MySQL数据库 建表 表格转换格式 导入数据库 效果演示 今天,我们就来把慢蜗牛在大二时期做的大创来复现一遍.后续会逐渐更新,带着大家一步一步做出属于自己的管理系统. MySQL数据库 在开始 ...
- 掌握HarmonyOS框架的ArkTs如何管理和共享状态数据
本文分享自华为云社区<深入理解ArkTs中的AppStorage和LocalStorage>,作者:柠檬味拥抱 . ARKTS(Ark TypeScript)是HarmonyOS应用框架的 ...
- springboot如何用jar包启动,同时为不同机房设置不同的配置文件
1.首先先把配置文件从jar中抽离 示例代码: <plugin> <groupId>org.apache.maven.plugins</groupId> <a ...
- jdk9模块化
JDK 9是Java开发语言的一个重大版本.其中最令人兴奋的新特性之一是模块化系统.模块化系统提出了一种新的代码组织方式,它可以帮助开发人员更好地组织和管理代码,从而使Java应用程序更加可维护.可扩 ...
- liunx二进制包安装5.6MySQL数据库
官网下载对应的二进制版本安装包 https://downloads.mysql.com/archives/community/ # 解压二进制压缩包 [root@localhost ~]# wget ...
- 组合式api的使用方式
方式一:通过setup选项 <script> export default { setup(){ // 提供数据 // 提供函数 // 提供计算属性等等..... } } </scr ...