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展示已经完,想了想,不想天天看平台去盯网络监控平台,索性对告警进行分类调整,增加告警的推送,和相关部门的提醒,其他部门看不懂…...
【ROS】ros-noetic与anaconda环境融合:解决Python路径冲突的实战指南
1. 环境冲突的根源分析 当你在Ubuntu 20.04上同时使用ROS Noetic和Anaconda时,最常遇到的报错就是"ImportError: No module named torch"。这个问题的本质是Python的路径搜索机制(sys.path)被ROS的初始化脚本改写了。我刚开始用ROS…...
BetterNCM Installer:一键解锁网易云音乐无限插件体验的终极神器
BetterNCM Installer:一键解锁网易云音乐无限插件体验的终极神器 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 想要让网易云音乐变得更强大、更个性化吗?Bett…...
TCC-G15:如何彻底解决戴尔游戏本过热降频问题?
TCC-G15:如何彻底解决戴尔游戏本过热降频问题? 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 你是否曾经在激烈游戏中突然遭遇性能骤降…...
边缘计算网络架构
边缘计算网络架构:重塑数字世界的神经末梢 在万物互联的时代,数据洪流正以前所未有的速度增长。传统的云计算模式因集中式处理导致的延迟高、带宽压力大等问题,已难以满足实时性要求严苛的应用场景。边缘计算网络架构应运而生,它…...
【2026年华为暑期实习(AI)-4月22日-第二题- 统计二叉树中“平衡路径”的数量】(题目+思路+JavaC++Python解析+在线测试)
题目内容 定义二叉树的平衡路径需同时满足以下 333 个条件: 路径从任意节点出发,仅能向下延伸(只能向左/右子节点,不可向上回溯)。 路径上所有节点的和相加为 000。 路径长度(包含的节点个数)至少为 22...
掌握大模型,产品经理的逆袭之路:高效、精准、智能,未来已来!
产品经理学习大模型(如GPT-3、BERT等)能显著提升工作效率和决策质量。大模型可助力进行高效用户需求分析、精准市场趋势预测、高效项目管理、智能产品设计以及基于数据的预测分析。此外,学习大模型还能帮助产品经理快速适应技术发展ÿ…...
全域数学:定量奠基方案【乖乖数学】
全域数学:定量奠基方案【乖乖数学】 作者:乖乖数学 时间:20260422...
skeyevss-performance 长任务Panic隔离与协程恢复源码设计
试用安装包下载 | SMS | 在线演示 开源项目地址:https://github.com/openskeye/go-vss 背景 VSS 长期运行,任何 nil 指针、越界、第三方库 bug 都可能触发 panic。若 panic 发生在 唯一 的 SIP 发送循环或 Catalog 定时器里,会导致 整类信…...
OCAD应用:利用OCAD进行一般光学系统的设计
填写完对光学系统的设计技术要求之后就可以在窗体右侧的绘图框内绘制光学系统方案草图。绘图框的基本尺寸默认为一张横排的A4图纸。如果根据系统总体尺寸的要求需要调整绘图框图纸图幅的尺寸,可以利用界面是文字框从 “图幅选择”中选择,点击“图幅选择”…...
测试111111111
测试...
