Python中的lambda函数
前言
嗨喽~大家好呀,这里是魔王呐 ❤ ~!

Python中的lambda函数
在Python中,我们使用lambda关键字来声明一个匿名函数,
这就是为什么我们将它们称为“lambda函数”。
匿名函数是指没有声明函数名称的函数。
尽管它们在语法上看起来不同,lambda函数的行为方式与使用def关键字声明的一般函数相同。
以下是Python中 lambda函数的特点:
-
lambda函数可以接受任意数量的参数,但函数只能包含一个表达式。
表达式是lambda函数执行的一段代码,它可以返回任何值,也可以不返回任何值。
-
lambda函数可以返回函数对象。
-
从语法上讲,lambda函数只能有一个表达式。
在本文中,我们将详细讨论Python中的lambda函数,并演示使用它们的例子。
创建一个lambda函数
我们使用以下语法来声明lambda函数:
lambda argument(s):expression
正如上面所述,我们可以有很多个参数,但是只能有一个表达式。
lambda操作符不能有任何声明,它返回一个函数对象,我们可以将此函数对象赋值给任何变量。
例如:
remainder = lambda num: num %2
print(remainder(5))
输出:
1
这段代码中,lambda num: num% 2是lambda函数。
num是参数,num%2是表达式,用来计算后返回结果。
该表达式获取输入参数除以2的模数并返回。
将5作为参数传入,通过除以2进行计算,得到余数1.
你应该注意到,上面脚本中的lambda函数没有分配任何名称。
它只是返回一个函数对象,该对象被分配给标识符remainder。
然而,尽管函数是匿名的,我们还是可以像调用普通函数那样调用它。
声明语句如下:
lambda num: num %2
和以下代码相似:
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def remainder(num):return num & 2
以下是另一个lambda函数的例子:product = lambda x, y: x * y
print(product(2.3))
输出:
6
上面定义的lambda函数返回一个product对象,该对象具有两个参数的值。
为什么使用lambda 函数?
Lambda函数主要在短时间内需要一个函数时才使用。
当你想要将函数作为参数传递给高阶函数(即以其他函数作为参数的函数)时,通常使用这种方法。
下面的例子演示了在其他函数中使用匿名函数:
def testfunc (num):return lambda x: x * num
在上面的例子中,我们有一个函数,该函数传入一个参数,将它与一个未知数相乘。
我们来演示一下怎样使用上面的函数:
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def testfunc(num):return lambda x : x * num
result1 = testfunc(10)
print(result1(9))
输出
90
在上面的脚本中,我们使用一个lambda函数与我们传入的数字10相乘。
同样的函数也可以用来与数字1000相乘。
def testfunc(num):return lambda x : x * num
result2 = testfunc(1000)
print(result2(9))
输出:
9000
我们很有可能会使用到testfunc( )函数来在一个程序中定义上面的两个lambda函数:
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def testfunc(num):return lambda x : x * numresult1 = testfunc(10)
result2 = testfunc(1000)print(result1(9))
print(result2(9))
输出:
90
9000
Lambda函数可以和Python的内置函数一起使用,例如map(),filter()等。
在接下来的章节中,我们将讨论怎样在各种Python内置函数中使用lambda函数。
filter() 函数
Python中的filter( )函数接受一个列表参数和一个lambda函数参数。
它的语法如下:
filter(object, iterable)
这里的object必须是一个返回布尔值的lambda函数。
对迭代器中的每一项都会调用该函数来计算其结果是True或False。
请注意,本函数只能接受一个迭代器作为输入。
lambda函数,和需要被处理的列表,被一同传递给filter( )函数。
filter()函数将返回一个新的列表,新的列表中只包含旧列表中被lambda函数处理后返回值为True的那些元素。
请参考下面给出的例子:
numbers_list =[2,6,8,10,11,4,12,7,13,17,0,3,21]
filtered_list = list(filter(lambda num: (num > 7),numbers_list))
print(filtered_list)
输出:
[8, 10, 11, 12, 13, 17, 21]
在上面的例子中,我们先创建了一个包含一系列整数的列表number_list,接着我们创建了一个lambda函数来检查大于7的整数。
此lambda函数作为参数传递给filter()函数,过滤后的结果保存在一个名为filtered_list的新列表中。
map( ) 函数
map( )函数是另一个以一个函数对象和一个列表作为参数的内置函数。
map函数的语法如下:
map(object,iterable_1,iterable_2, ...)
传入map()函数的迭代器可以是字典,列表等。
map()函数主要是根据lambda函数定义的逻辑来将输入迭代器中的每一项映射到输出迭代器中的相关项。
请参考以下的例子:
numbers_list =[2,6,8,10,11,4,12,7,13,17,0,3,21]
mapped_list = list(map(lambda num: num %2,numbers_list))
print(mapped_list)
输出:
[0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1]
在上面的脚本中,我们先定义了一个由随机数组成的列表numbers_list,接着我们调用map()函数,并传递一个lambda函数作为参数。
此lambda函数计算每个数除以2之后的余数。映射的结果保存在一个名为mapped_list的列表中。
最后,我们打印出列表的内容。
结论
-
在Python中,一个lambda函数是一个只有一行代码的函数,不需要进行函数名声明,它可以有很多个参数,但是只能有一个表达式。
-
它和使用Python关键字def声明的函数具有相似的功能。
-
大多数情况下,lambda函数只作为参数传递给其他函数。
-
在本文中,我们讲解了广泛使用的lambda函数的语法,用例以及实例。
尾语
感谢你观看我的文章呐~本次航班到这里就结束啦 🛬
希望本篇文章有对你带来帮助 🎉,有学习到一点知识~
躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

相关文章:
Python中的lambda函数
前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! Python中的lambda函数 在Python中,我们使用lambda关键字来声明一个匿名函数, 这就是为什么我们将它们称为“lambda函数”。 匿名函数是指没有声明函数名称的函数。 尽管它们在语法上看起来不同&a…...
Ajax入门
文章目录 axios体验axios-查询参数常用请求方法数据提交 axios错误处理 axios体验 引入axios库 使用axios语法 axios({url: 目标资源地址 }).then((result)>{// 对服务器返回的数据做后续处理 })完整实例 <!DOCTYPE html> <html lang"en"><head&g…...
MapReduce基础原理、MR与MPP区别
MapReduce概述 MapReduce(MR)本质上是一种用于数据处理的编程模型;MapReduce用于海量数据的计算,HDFS用于海量数据的存储(Hadoop Distributed File System,Hadoop分布式文件系统)。Hadoop MapR…...
位运算符让人反胃
A60 B13 二进制下 A00111100 B00001101 &(同1为1) A00111100 & B00001101 X00001100 X12 |(有1为1) A00111100 | B00001101 X00111101 X61 ^(不同为1) A00111100 ^ B00001101 X00110001 X49 ~&…...
selenium环境搭建
文章目录 1、下载谷歌浏览器2、下载谷歌驱动 1、下载谷歌浏览器 浏览器下载完成后,在任务管理器中禁止浏览器的自动更新。因为驱动版本必须和浏览器一致,如果浏览器更新了,驱动就用不起了。 2、下载谷歌驱动 谷歌驱动需要和谷歌浏览器版本…...
Python-OpenCV中的图像处理-霍夫变换
Python-OpenCV中的图像处理-霍夫变换 霍夫变换霍夫直线变换霍夫圆环变换 霍夫变换 霍夫(Hough)变换在检测各种形状的技术中非常流行,如果要检测的形状可以用数学表达式描述,就可以是使用霍夫变换检测它。即使要检测的形状存在一点破坏或者扭曲也是可以使…...
最强自动化测试框架Playwright(10)- 截图
截图 捕获屏幕截图并将其保存到文件中: page.screenshot(path"screenshot.png")可将页面截图保存为screen.png import osfrom playwright.sync_api import Playwright, expect, sync_playwrightdef run(playwright: Playwright) -> None:browser p…...
SQL常见命令语句
1.连接数据库 mysql (-h IP) -u root -p 密码2.查看数据库 show databases3.使用数据库 use db_name4.查看表 show tables [from db_name]5.查看表结构 desc tb_name6.创建、删除、选择数据库 create database db_namedrop database db_nameuse db_name7.数据类型 参考链…...
Android Framework解析——WMS原理
作者:bobby_developer 1. WMS原理:WMS角色与实例化过程 window:它是一个抽象类,具体实现类为 PhoneWindow ,它对 View 进行管理。Window是View的容器,View是Window的具体表现内容; windowManager:是一个接…...
python编辑器安装与配置,python用哪个编辑器好用
大家好,给大家分享一下python编辑器pycharm安装教程,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 哪些python的编程软件值得推荐? 编写python源代码的软件.首推的Pycharm。 PyCharm用于bai一般IDE具备的功能&…...
如何使用ElasticSearch存储和查询数据
1. 引言 在大多数的场景里,存储数据都是用MySQL这类关系型数据库,这类数据库的特点是数据存储安全性和一致性高,可以用于事务操作,但是随着数据量的增加,查询的速度也会随之降低,并且其扩展能力有限&#x…...
谈谈对Spring MVC的理解
问题分析: SpringMVC 是一种基于 Java 语言开发,实现了 Web MVC 设计模式,请求驱动类型 的轻量级 Web 框架。 SpringMVC采用了 MVC 架构模式的思想,通过把 Model,View,Controller 分离,将 Web 层…...
Shopify平台Fulfillment业务模块升级
上图是销售订单、发货单与配送之间的关系图,销售订单可以创建多个发货单,多个发货单(不同销售订单)可以合并在一个配送订单进行发货 接口请求错误记录: 1. The api_client does not have the required permission(s). 2. Required parameter missing or…...
使用 PyTorch 逐步检测单个对象
一、说明 在对象检测任务中,我们希望找到图像中对象的位置。我们可以搜索一种类型的对象(单对象检测,如本教程所示)或多个对象(多对象检测)。通常,我们使用边界框定义对象的位置。有几种方法可以…...
Node.js |(二)Node.js API:fs模块 | 尚硅谷2023版Node.js零基础视频教程
学习视频:尚硅谷2023版Node.js零基础视频教程,nodejs新手到高手 文章目录 📚文件写入🐇writeFile 异步写入🐇writeFileSync 同步写入🐇appendFile / appendFileSync 追加写入🐇createWriteStrea…...
Android 13 Hotseat定制化修改——002 hotseat图标数量修改
目录 一.背景 二.实践方案 一.背景 由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小࿰…...
Flask实现接口mock,安装及使用教程(一)
1、什么是接口mock 主要是针对单元测试的应用,它可以很方便的解除单元测试中各种依赖,大大的降低了编写单元测试的难度 2、什么是mock server 正常情况下:测试客户端——测试——> 被测系统 ——依赖——>外部服务依赖 在被测系统和…...
分立式BUCK电路原理与制作持续更新
目录 一、分立式BUCK电路总体原理图 二、BUCK电路与LDO的区别 三、BUCK电路为什么要加电感 四、BUCK电路要加续流二极管 五、BUCK电路导通与断开的回路 六、电源公式的中的几个表示方式 1、输入功率用Pin表示 2、输出功率用Po表示 3、电源的效率公式:电源的…...
2023年大数据与计算国际会议 (WBDC 2023)| EI、Scoups检索
会议简介 Brief Introduction 2023年大数据与计算国际会议(WBDC 2023) 会议时间:2023年11月17 -19日 召开地点:中国西安 大会官网:www.iwbdc.org 2023年大数据与计算国际会议(WBDC 2023)将围绕“…...
Grafana V10 告警推送 邮件
最近项目建设完成,一个城域网项目,相关zabbix和grafana展示已经完,想了想,不想天天看平台去盯网络监控平台,索性对告警进行分类调整,增加告警的推送,和相关部门的提醒,其他部门看不懂…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
加密通信 + 行为分析:运营商行业安全防御体系重构
在数字经济蓬勃发展的时代,运营商作为信息通信网络的核心枢纽,承载着海量用户数据与关键业务传输,其安全防御体系的可靠性直接关乎国家安全、社会稳定与企业发展。随着网络攻击手段的不断升级,传统安全防护体系逐渐暴露出局限性&a…...
