0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Python中为什么使用lambda

jf_78858299 来源:人工智能知识分享 作者:人工智能知识分享 2023-04-03 11:44 次阅读

通常来说,lambda起到了一种函数速写的作用,允许在使用的代码内嵌入一个函数的定义。在你仅需要嵌入小段可执行代码的情况下它们会带来一个更简洁的代码结构。

lambda通常用来编写跳转表(jump table),也就是行为的列表或字典,能够按照需要执行相应的动作。如下段代码所示。

L = [lambda x: x ** 2, # Inline function definition

lambda x: x ** 3,

 lambda x: x ** 4]         # A list of 3 callable functions

for f in L:

print(f(2))                # Prints 4,8,16

print(L[0](3)) # Prints 9

当需要把小段的可执行代码编写进def语句从语法上不能编写进的地方时,lambda表达式作为def的一种速写来说是最为有用的。例如,上面的代码片段,通过在列表常量中嵌入lambda表达式创建一个含有三个函数的列表。对等的def代码可能需要在想要使用的环境之外有临时性函数名称和函数定义。

def f1(x): return x ** 2

def f2(x): return x ** 3 # Define named functions

def f3(x): return x ** 4

L = [f1,f2,f3] # Reference by name

for f in L:

print(f(2))                # Prints 4,8,16

print(L[0](3)) # Prints 9

实际上,我们可以用Python中的字典或者其他的数据结构来构建更多种类的行为表,从而做同样的事情。下面给出另一个例子:

key = 'got'

{'already': (lambda: 2 + 2),

...'got': (lambda: 2 * 4),

...'one': (lambda: 2 ** 6)}[key]

name

for f in L:

print(f(2))                # Prints 4,8,16

print(L[0](3)) # Prints 9

这里,当Python创建这个字典的时候,每个嵌套的lambda都生成并留下了一个在之后能够调用的函数。如果不是用lambda做这种工作,需要使用三个文件中其他地方出现过的def语句来替代,也就是在这些函数将会使用的那个字典外的某处需要定义这些函数。

def f1(): return 2 + 2...

def f2(): return 2 * 4

...

def f3(): return 2 ** 6

...

key = 'one'

{'already': f1,'got': f2,'one': f3}[key]()

64

同样,上面代码会实现相同的功能,但是def也许会出现在文件中的任意位置,即使它们只有很少的代码。类似刚才lambda的代码,提供了一种特别有用的可以在单个情况出现的函数:如果这里的三个函数不会在其他的地方使用到,那么将它们的定义作为lambda嵌入在字典中就是很合理的了。不仅如此,def格式要求为这些小函数创建变量名,这些变量名也许会与这个文件中的其他变量名发生冲突。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4304

    浏览量

    62418
  • 代码
    +关注

    关注

    30

    文章

    4742

    浏览量

    68333
  • Lambda
    +关注

    关注

    0

    文章

    28

    浏览量

    9859
收藏 人收藏

    评论

    相关推荐

    Python面试必看的10个问题

    :delaelse:last=aprint(a)10、下面的代码Python2的输出是什么?解释你的答案defdiv1(x,y): print "%s/%s = %s" % (x
    发表于 02-28 17:00

    lambda函数基础

    lambda函数基础lambda与def
    发表于 12-29 06:22

    python匿名函数的使用

    ,为什么今天我们要介绍它呢?首先我们要知道 lambda 是一个表达式,而不是一个语句。正因为这个特点,我们可以一些特殊的场景中去使用它。
    发表于 03-02 16:42

    python高阶函数

    注意的是,以上示例是 Python2.x 环境下演示的。而在 Python3.x ,却有所不同,你可以自己尝试一下。这里总结一下:第一点,map 和 filter 函数返回的都不再
    发表于 03-02 16:47

    LAMBDA算法卫星导航定位的应用研究

    卫星导航定位,基于载波相位观测值的RTK定位技术能够达到厘米级的定位精度,其核心技术是整周模糊度的快速解算。采用LAMBDA方法能快速解算整周模糊度完成初始化,实时周跳检
    发表于 07-06 16:39 22次下载

    简洁编写Python 语法的7种技巧分享

    Python 是一门用途广泛、易读、而且容易入门的编程语言。但同时 python 语法也允许我们做一些很奇怪的事情。 1、使用 lambda 表达式重写多行函数 众所周知 python
    的头像 发表于 12-20 11:03 816次阅读

    Anaconda安装python包seaborn

    Anaconda安装python包seaborn(现代电源技术题库)-Anaconda安装pyt
    发表于 09-18 15:01 5次下载
    <b class='flag-5'>在</b>Anaconda<b class='flag-5'>中</b>安装<b class='flag-5'>python</b>包seaborn

    抽样Python是如何实现的

    今天来和大家聊聊抽样的几种常用方法,以及Python是如何实现的。
    的头像 发表于 08-05 10:59 1165次阅读

    推荐一个Python超级好用的内置函数lambda

    Python当中,我们经常使用lambda关键字来声明一个匿名函数,所谓地匿名函数,通俗地来讲就是没有名字的函数。
    的头像 发表于 09-13 18:09 986次阅读
    推荐一个<b class='flag-5'>Python</b>超级好用的内置函数<b class='flag-5'>lambda</b>

    Lambda表达式详解

    C++11Lambda表达式用于 **定义并创建匿名的函数对象** ,以简化编程工作。下面看一下Lambda表达式的基本构成。
    的头像 发表于 02-09 11:28 1130次阅读

    PythonLambda表达式

    Python Lambda 表达式是一种非常强大的工具,它可以让你快速创建小型匿名函数,而不需要显式地定义函数名称。Lambda
    的头像 发表于 04-19 15:49 794次阅读

    网络工程师学Python-Lambda表达式

    Python Lambda 表达式是一种非常强大的工具,它可以让你快速创建小型匿名函数,而不需要显式地定义函数名称。Lambda
    的头像 发表于 04-19 15:51 885次阅读

    什么是Lambda函数

    和 map() 方法的联用 lambda 函数和 apply() 方法的联用 什么时候不适合使用 lambda 方法 什么是 Lambda 函数
    的头像 发表于 10-17 11:27 1163次阅读

    PythonAI的应用实例

    Python人工智能(AI)领域的应用极为广泛且深入,从基础的数据处理、模型训练到高级的应用部署,Python都扮演着至关重要的角色。以下将详细探讨Python
    的头像 发表于 07-19 17:16 920次阅读

    亚马逊云科技推出Amazon Lambda SnapStart功能

    亚马逊云科技推出Amazon Lambda SnapStart,大幅提升Java Lambda函数启动性能   北京,2024年10月29日 —— 亚马逊云科技近日宣布,与光环新网和西云数据
    的头像 发表于 10-30 10:59 192次阅读