Python匿名函数4不要

一张图讲透银行个人外汇业务逻辑和实操 个人外汇业务主要分为结售汇和外币兑换两类,前者满足日常跨境需求,后者因投机属性多数银行已暂停。业务核心是利用汇率波动实现货币兑换,满足支付或投资需求。交易涉及客户分类、主流币种、多种渠道和汇率计算规则,需区分直接/间接标价法判断汇率走势。银行通过"货币兑换"科目核算损益,采用期末折算确认盈亏。监管要求包括5万美元年度额度、合法渠道、真实性原则及大额申报等。随着跨境金融数字化发展,掌握基础逻辑和合规要求是安全参与外汇业务的关键。 阅读详情

当你需要完成一件小工作时,在本地环境中使用这个函数,可以让工作如此得心应手,它就是Lambda 函数。

Lambda 函数是 Python 中的匿名函数。有些人将它们简称为lambdas,它们的语法如下:

lambda arguments: expression

lambda 关键字可以用来创建一个 lambda 函数,紧跟其后的是参数列表和用冒号分割开的单个表达式。例如,lambda x: 2 * x 是将任何输入的数乘2,而 lambda x, y: x+y 是计算两个数字的和。语法十分直截了当,对吧?

假设您知道什么是 lambda 函数,本文旨在提供有关如何正确使用 lambda 函数的一些常规准则。

1. 不要返回任何值

看看语法,您可能会注意到我们在 lambda 函数中并没有返回任何内容。这都是因为 lambda 函数只能包含一个表达式。然而,使用 return 关键字会构成不符合规定语法的语句,如下所示:

>>> integers = [(3, -3), (2, 3), (5, 1), (-4, 4)]
>>> sorted(integers, key=lambda x: x[-1])
[(3, -3), (5, 1), (2, 3), (-4, 4)]
>>> sorted(integers, key=lambda x: return x[-1])
... 
  File "", line 1
    sorted(integers, key=lambda x: return x[-1])
                                   ^
SyntaxError: invalid syntax

该错误可能是由于无法区分表达式和语句而引起的。像是包含 return、try、 with 以及 if 的语句会执行特殊动作。然而,表达式指的是那些可以被计算出一个值的表达,例如数值或其他 Python 对象。

通过使用 lambda 函数,单个表达式会被计算为一个值并且参与后续的计算,例如由 sorted 函数排序。

2. 不要忘记更好的选择

lambda 函数最常见的使用场景是将它作为一些内置工具函数中 key 的实参,比如上面展示的 sorted() 和 max()。根据情况,我们可以使用其他替代方法。思考下面的例子:

>>> integers = [-4, 3, 7, -5, -2, 6]
>>> sorted(integers, key=lambda x: abs(x))
[-2, 3, -4, -5, 6, 7]
>>> sorted(integers, key=abs)
[-2, 3, -4, -5, 6, 7]
>>> scores = [(93, 100), (92, 99), (95, 94)]
>>> max(scores, key=lambda x: x[0] + x[1])
(93, 100)
>>> max(scores, key=sum)
(93, 100)

在数据科学领域,很多人使用 pandas 库来处理数据。如下所示,我们可以使用 lambda 函数通过 map() 函数从现有数据中创建新数据。除了使用 lambda 函数外,我们还可以直接使用算术函数,因为 pandas 是支持的:

>>> import pandas as pd
>>> data = pd.Series([1, 2, 3, 4])
>>> data.map(lambda x: x + 5)
0    6
1    7
2    8
3    9
dtype: int64
>>> data + 5
0    6
1    7
2    8
3    9
dtype: int64

3. 不要将它赋值给变量

我曾见过一些人将 lambda 函数误认为是简单函数的另一种声明方式,您可能也见过有人像下面这么做:

>>> doubler = lambda x: 2 * x
>>> doubler(5)
10
>>> doubler(7)
14
>>> type(doubler)
<class 'function'>

对 lambda 函数命名的唯一作用可能是出于教学目的,以表明 lambda 函数的确是和其他函数一样的函数——可以被调用并且具有某种功能。除此之外,我们不应该将 lambda 函数赋值给变量。

为 lambda 函数命名的问题在于这使得调试不那么直观。与其他的使用常规 def 关键字创建的函数不同,lambda 函数没有名字,这也是为什么有时它们被称为匿名函数的原因。思考下面简单的例子,找出细微的区别:

>>> inversive0 = lambda x: 1 / x
>>> inversive0(2)
0.5
>>> inversive0(0)
Traceback (most recent call last):
  File "", line 1, in <module>
  File "", line 1, in 
ZeroDivisionError: division by zero
>>> def inversive1(x):
...     return 1 / x
... 
>>> inversive1(2)
0.5
>>> inversive1(0)
Traceback (most recent call last):
  File "", line 1, in <module>
  File "", line 2, in inversive1
ZeroDivisionError: division by zero

当您的代码存在关于 lambda 函数的问题(即 inversive0),Traceback 错误信息只会提示您 lambda 函数存在问题。

相比之下,使用正常定义的函数,Traceback会清晰地提示您有问题的函数(即 inversive1)。

与此相关,如果您想多次使用 lambda 函数,最佳实践是使用通过 def 定义的允许使用文档字符串的常规函数。

4. 不要忘记列表推导式

有些人喜欢将 lambda 函数和高阶函数一起使用,比如 map 或 filter。思考下面用法示例:

>>> # 创建一个数字列表
>>> numbers = [2, 1, 3, -3]
>>> # 使用带有 lambda 函数的 map 函数
>>> list(map(lambda x: x * x, numbers))
[4, 1, 9, 9]
>>> # 使用带有 lambda 函数的 filter 函数
>>> list(filter(lambda x: x % 2, numbers))
[1, 3, -3]

我们可以使用可读性更强的列表推导式代替 lambda 函数。如下所示,我们使用列表推导式来创建相同的列表对象。如您所见,与列表推导式相比,之前将 map 或 filter 函数与 lambda 函数一起使用更麻烦。因此,在创建涉及高阶函数的列表时,应考虑使用列表推导式。

>>> # Use list comprehensions
>>> [x * x for x in numbers]
[4, 1, 9, 9]
>>> [x for x in numbers if x % 2]
[1, 3, -3]

结论

在本文中,我们回顾了使用 lambda 函数可能会犯的四个常见错误。通过避免这些错误,您应该能在代码中正确使用 lambda 函数。

使用 lambda 函数的经验准则是保持简单以及只在本地使用一次。

学习资源推荐
除了上述分享,学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述
👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以V扫描下方二维码联系领取
【保证100%免费
】

手把手教您解决 AdGuard Home DNS重写功能失效的问题 AdGuard Home 设置了 DNS 重写,规则明明没问题,客户端却死活解析不到内网 IP?🤯 别急着重装!🚫 本文手把手教你如何解决软路由 DNS 解析“玄学”故障!🛠️🚀 阅读详情

相关推荐

松材线虫病害智能检测:基于YOLOv8的无人机航拍数据集构建与模型优化

本文探讨了基于YOLOv8的无人机航拍技术在松材线虫病害智能检测中的应用。通过构建高质量巡检数据集和优化模型架构(如RepVit主干网络和跨尺度特征融合模块),显著提升了病害识别准确率。该方案在复杂森林环境中表现出色,将检测效率提高数倍,为林业病害防控提供了高效解决方案。

vulkan6gpu的博客 995

Python-匿名函数

什么是匿名函数?匿名函数的应用场景?匿名函数的实现方式?

weixin_52245535的博客 4847

element的el-cascader组件动态加载,以及报错处理问题

Blocked aria-hidden on an element because its descendant retained focus. The focus must not be hidden from assistive technology users. 报错处理

weixin_56527169的博客 1264

Python进阶(五)浅谈python匿名函数

高阶函数可以接收函数做参数,有些时候,我们不需要显式地定义函数,直接传入匿名函数更方便。在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2关键字lambda表示匿名函数,冒号前面的 x 表示函数参数。匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。

IT全栈 华强工作室 4万+

ml307 二次开发

中移物联网旗下4g模组官方网站官方教程id=514官方客户不知道啥时候上班 早上10点也说不在服务时间内 找不到官方的sdk下载路径。

myWorld001的博客 2882

第14.1章 高翔博士2025年11月最新开源框架Lightning-LM源码学习解读(一):激光-IMU定位+建图算法各模块简介

Lightning-LM:高效激光SLAM定位系统 该框架基于模块化设计,通过激光-IMU融合实现快速建图与定位,核心特点包括: 极速性能:纯CPU运行(建图1.2核/定位0.8核) 模块化架构:包含激光里程计(LIO)、地图管理、回环检测等独立模块 动态场景支持:地图分块加载、动静态图层分离 多模式适配:支持ROS2环境下的在线/离线运行 关键模块包括前端里程计(core/lio)、2D/3D地图转换(core/g2p5)、轻量优化库(core/miao)等,通过系统控制器(core/system)协调流

行知SLAM 2438

python 中匿名函数的使用

使用匿名函数就不用担心函数之间名称会冲突,因为函数没有名字。但匿名函数也是一个函数对象。匿名函数会提高你的程序简洁渡和执行效率

m0_55099587的博客 4647

大疆视觉算法面试,手推极线几何这关刷掉了一半人

摘要:大疆机器视觉算法工程师面试重点考察目标检测工程优化、深度估计几何原理和视觉SLAM全流程。目标检测侧重模型压缩和部署优化,需掌握知识蒸馏、量化及算子融合;深度估计要求推导双目几何并理解单目深度恢复方法;视觉SLAM需熟悉前后端流程及ORB-SLAM3/VINS-Mono区别。面试常要求手推PnP等公式,注重实践能力。准备需重点练习公式推导和代码实现,掌握工程落地细节。

郑伟强dev的专栏 193

Python匿名函数

在Python编程中,匿名函数是一种特殊类型的函数,它没有显式的函数名。匿名函数也被称为lambda函数,它可以用于快速定义简单的函数。lambda表达式是一种简洁的语法,用于创建匿名函数。通过lambda表达式,我们可以在一行代码中定义函数并使用它。在上述代码中,我们使用匿名函数计算了3的平方和4的平方的和。匿名函数的应用场景是多样的,在上述代码中,我们使用lambda表达式创建了一个匿名函数add,匿名函数常用于一些简单且只需要临时使用的函数,不需要为其命名。

m0_70911440的博客 1242

QCC304x系列开发教程(实战篇)之5.2 QCC3040之提示音

earbud_init.c中,初始化table中UiPrompts_Init /*! \brief Table of initialisation functions */ static const init_table_entry_t appInitTable[] = { ......... {UiPrompts_Init, 0, NULL}, ......... } ui_prompts.c中是提示音音处理的主要逻辑和配置源文件 函数static void uiPro...

心跳包的博客 2393

使用Simulink对基于GaN器件的高频电源进行建模与仿真,重点在于优化其效率

本文介绍了基于Simulink的GaN器件高频电源仿真建模方法。通过7个步骤详细讲解系统构建过程:从创建模型、设置电源、配置GaN开关网络,到添加磁性元件、负载和控制器设计,最后进行仿真分析。重点探讨了效率优化策略,包括开关频率选择、磁性元件优化、散热设计改进及控制策略调整。该教程为GaN器件在电力电子系统中的应用提供了完整的仿真流程指导,有助于设计人员验证方案并优化性能。

amy_mhd的博客 234

python的匿名函数

匿名函数 >>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])) [1, 4, 9, 16, 25, 36, 49, 64, 81] 通过对比可以看出,匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x表示函数参数...

JavaAlliance 457

公文流转系统

公文录入区 | QLineEdit(文号/标题)、QComboBox(公文类型/紧急程度)、QTextEdit(正文)、QListWidget(附件列表)、QPushButton(上传附件/保存草稿/提交审批) |// 按时间范围获取。QStringList userNames = {"张三", "李四", "王五", "赵六", "钱七", "孙八", "周九", "吴十", "郑十一", "王十二"};

寒寒豆豆软件公司的博客 550

Python—匿名函数

一.匿名函数的用法 """ 匿名函数的关键字为lambda,冒号前面是形参 冒号后面是返回值 """ from functools import reduce # # def add(x,y): # return x + y # # print(reduce(lambda x,y:x+y,[1,2,3,4,5])) # print(list(map(lambda x:x ** 2,r...

daizheng12345的博客 1699

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

python匿名函数还可以这么用

匿名函数是指没有名字的函数,它主要应用在需要一个函数、但是又不想费神去命名这个函数的场合。通常情况下,这样的函数只使用一次。

bcisahd的博客 781

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Python之匿名函数

当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。 匿名函数的关键字为 lambda 冒号前面是 形参 冒号后面是返回值 from functools import reduce def add(x, y): return x + y print(reduce(add, ra...

qq_36016375的博客 4347

python基础:匿名函数

在定义函数的时候,不想给函数起一个名字。这个时候就可以用lambda来定义一个匿名函数 语法: 变量名= lambda 参数:表达式(block) 参数:可选,通常以逗号分隔的变量表达式形式,也就是位置参数 表达式:不能包含循环、return,可以包含if…else… 注意: 1.表达式中不能包含 循环,return.可以包含 if…else…语句. 2.参数可有可无,如果有多个参数,使用逗号隔开...

珂鸣玉的博客 2037

Python中的匿名函数

匿名函数在实际工作中同样举足轻重,正确地运用匿名函数,能让我们的代码更简洁、易读。 匿名函数基础 首先,什么是匿名函数呢?以下是匿名函数的格式: lambda argument1, argument2,... argumentN : expression 我们可以看到,匿名函数的关键字是 lambda,之后是一系列的参数,然后用冒号隔开,最后则是由这些参数组成的表达式。我们通过几个例子看一下它的用法: square = lambda x: x**2 square(3) 9 这里的匿名函数只输入一个

scu-liu的博客 1234

Python 中的匿名函数,你滥用了吗?_python定义匿名函数能提高速度吗

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。

2301_82241675的博客 965

Python函数学习——匿名函数

匿名函数 匿名函数就是不需要显式的指定函数名。 关键字lambda表示匿名函数,冒号前面的n表示函数参数,可以有多个参数。 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果。 用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数: 有些函数在代码中只用一次,...

weixin_30278311的博客 2078

python中匿名函数的关键字_Python匿名函数(lambda函数)

匿名函数—— 一行函数lambda —— 关键字x是普通函数的形参(位置,关键字...)可以不接收参数(x可以不写):x是普通函数的函数值(只能返回一个数据类型)(:x返回值必须写)1)此函数不是没有名字,他是有名字的,他的名字就叫做lambda2)lambda 是定义匿名函数的关键字,相当于函数的def.3)lambda 后面直接加形参,形参加多少都可以,只要用逗号隔开就行。func = ...

weixin_39975744的博客 1797

python的匿名函数_Python之匿名函数

今天给大家介绍一下Python中的匿名函数。匿名函数由lambda关键字来定义参数列表不需要小括号冒号不是开启新的语句块的只能写在一行上没有return语句,最后一个表达式的值就是返回值一个简单的例子:In [1]: lambda x: x+1Out[1]: ># 第一种用法(lambda x: x + 1)(3) # 第一个括号用来改变优先级,第二对括号表示函数调用In [2]: (lam...

weixin_39854681的博客 98

python之匿名函数

文章目录1 匿名函数的概念2 匿名函数的应用2.1 求和2.2 求1~10的平方(列表输出)2.3 1-100之间的偶数2.4 移动列表中的0到最后面,其他数字排序不变 1 匿名函数的概念 匿名函数:关键字为lambda ,冒号前面是形参 ,冒号后面是返回值 什么时候使用匿名函数呢? 代码块重复:这时候必须考虑用到匿名函数,降低程序的冗余度 代码块复杂:这时候可以考虑用到匿名函数,降低程序的可读性...

weixin_21583810的博客 463

python中匿名函数的作用_Python 中的匿名函数,你会用吗

原标题:Python 中的匿名函数,你会用吗概念我们从一个例子引入。这里有一个元素为非空字符串的列表,按字符串最后一个字母将列表进行排序。如果原列表是 [‘abc’, ‘g’, ‘def’],则结果应该是 [‘abc’, ‘def’, ‘g’]。很容易得到如下代码 我们发现, get_last_element 这个方法比较简单,并且只用了一次,但必须定义后得到一个名称才能使用。在上面的情境中,使用...

weixin_39996035的博客 193

python定义一个匿名函数_Python之函数式编程之匿名函数

Python之函数式编程之匿名函数,在定义函数的时候,不想给函数起一个名字。这个时候就可以用lambda来定义一个匿名函数;匿名函数又称之为高效函数;因为在声明的时候可以直接调用(不需要先声明定义然后再调用)。语法lambda 变量名....:语句表达式特点a.声明时没有函数名(减少程序员对函数名的定义)b.使用lambda关键字举个栗子*创建一个不带参匿名函数func1 = lambda: 1 ...

weixin_39626369的博客 565

python不能用匿名函数,Python 中的匿名函数,你滥用了吗?

本文介绍一下 Python 中的匿名函数以及使用的误区。私信回复基础可获取小编整理的一套基础视频教程概念我们从一个例子引入。这里有一个元素为非空字符串的列表,按字符串最后一个字母将列表进行排序。如果原列表是 ['abc', 'g', 'def'],则结果应该是 ['abc', 'def', 'g']。很容易得到如下代码Python 中的匿名函数,你滥用了吗?我们发现, get_last_eleme...

weixin_42491751的博客 415

python中的匿名函数

python中的匿名函数1. 匿名函数的概念2. 匿名函数的格式3. 匿名函数的应用 1. 匿名函数的概念 匿名函数:关键字为lambda ,冒号前面是形参 ,冒号后面是返回值 什么时候使用匿名函数呢? 代码块重复:这时候必须考虑用到匿名函数,降低程序的冗余度 代码块复杂:这时候可以考虑用到匿名函数,降低程序的可读性 在Python中有两种函数,一种是def定义,一种是lambda函数 例如:...

kaiser king的博客 556
上一篇: python调用函数
下一篇: Python实现外观模式、桥接模式、组合模式和享元模式
Python干货分享
博客等级 码龄3年 607粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值