搜索
首页后端开发Python教程Python lambda功能指南,并带有示例

Python lambda功能指南,并带有示例

本文介绍了python lambda函数以及如何编写和使用它们。

>尽管Python是一种面向对象的编程语言,但在执行各种功能编程时,Lambda功能很方便。

>

注意:本文将假定您已经了解Python编程以及如何使用常规功能。还认为您在设备上安装了Python 3.8或更高。 钥匙要点

Python lambda函数是匿名的,通常是使用“ lambda”关键字定义的单行函数,通常在诸如MAP()和filter()之类的高阶函数中使用。他们可以处理列表理解,并且对于在UI框架中有条件渲染很有用。 lambda函数可以采用任何数量的位置参数,关键字参数,或两者兼而有之,其次是结肠和一个表达式。它们也像在JavaScript中的立即调用函数表达式(IIFE)一样执行。

> lambda函数可以在列表理解和书写python中的三元表达式中使用,该函数基于给定的条件输出结果。它们也可以在高阶功能中使用,这些功能是接受其他函数作为参数并返回函数作为输出的函数。

尽管Python lambdas可以显着减少代码线数量,但仅应在必要时谨慎使用。代码的可读性应优先于简洁性。当有多种表达式时,不建议使用它们,因为它可能使代码不可读。
    >
  • 解释Python lambda函数
  • 在Python中,函数可以接收一个或多个位置或关键字参数,一个变量参数列表,一个关键字参数的可变列表等。它们可以传递到高阶功能中,并返回为输出。常规功能可以具有多个表达式和多个语句。他们也总是有名字。
  • >
  • python lambda函数只是一个匿名函数。它也可以称为a
  • nameless
  • 函数。正常的Python函数由DEF关键字定义。 python中的lambda函数通常由lambda关键字,任何数量的参数和一个表达式组成。
  • >

>注意:术语lambda函数,lambda表达式和lambda表单可以互换使用,具体取决于编程语言或程序员。 lambda函数主要用作单线。它们经常在MAP()和Filter()之类的高阶功能中使用。这是因为匿名函数作为参数传递给了高阶功能,这不仅在Python编程中完成。

> lambda函数对于处理Python中的列表理解也非常有用 - 为此目的使用Python Lambda表达式各种选项。

> lambdas在UI框架中用于诸如Tkinter,Wxpython,Kivy等的有条件施用时非常好。尽管本文未涵盖Python GUI框架的工作基于用户的互动。

>在进行python lambda函数之前要理解的事情

因为Python是一种面向对象的编程语言,所以一切都是对象。 python类,类实例,模块和函数均以对象的方式处理。

>

可以将函数对象分配给变量。

>

>将变量分配给Python中的常规功能并不少见。此行为也可以应用于lambda功能。这是因为它们是函数对象,即使它们是无名的:

>

<span>def greet(name):
</span>    <span>return <span>f'Hello <span>{name}</span>'</span>
</span>
greetings <span>= greet
</span>greetings<span>('Clint')
</span><span>>>>>
</span>Hello Clint
高阶函数,例如map(),filter()和redain()>

>您可能需要在内置函数(例如extric()和map()以及read()之类的内置函数中使用lambda函数,这是从python中的functools模块导入的,因为它不是一个内置功能。默认情况下,高阶函数是接收其他函数作为参数的函数。

>如下所示,可以用lambdas替换正常功能,作为参数传递到这些高阶函数中的任何一个:

>

<span>#map function
</span>names <span>= ['Clint', 'Lisa', 'Asake', 'Ada']
</span>
greet_all <span>= list(map(greet, names))
</span><span>print(greet_all)
</span><span>>>>>
</span><span>['Hello Clint', 'Hello Lisa', 'Hello Asake', 'Hello Ada']</span>
语句和表达式
<span>#filter function
</span>numbers <span>= [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
</span><span>def multiples_of_three(x):
</span>        <span>return x % 3 == 0
</span>
<span>print(list(filter(multiples_of_three, numbers)))
</span><span>>>>>
</span><span>[12, 15, 18]</span>
之间的区别
<span>#reduce function
</span>numbers <span>= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
</span><span>def add_numbers(x, y):
</span>        <span>return x * y
</span>
<span>print(reduce(add_numbers, numbers))
</span><span>>>>>
</span><span>55</span>
>开发人员之间的混淆点是区分编程中的陈述和表达式。

>语句是执行某件事或执行操作的任何代码,例如if或nister条件。

>表达式是由变量,值和运算符组合组合的,并评估为新值。

这种区别很重要,因为我们探讨了python中lambda函数的主题。像下面的表达式返回一个值:

陈述看起来像这样:

square_of_three <span>= 3 ** 2
</span><span>print(square_of_three)
</span><span>>>>>
</span><span>9</span>
如何使用python lambda函数

Python样式指南规定,每个lambda函数都必须从关键字lambda开始(与普通函数不同,该功能以DEF关键字开头)。 lambda函数的语法通常是这样的:

<span>for i in range(len(numbers), 0, -1):
</span>        <span>if i % 2 == 1:
</span>                <span>print(i)
</span>        <span>else:
</span>                <span>print('even')
</span><span>>>>>
</span>even <span>9 even 7 even 5 even 3 even 1</span>
lambda函数可以采用任何数量的位置参数,关键字参数,或两者兼而有之,其次是结肠和一个表达式。由于句法受到限制,因此不能有一个不止一个表达。让我们检查下面的lambda表达式的示例:

从上面的示例中,将lambda表达式分配给变量add_number。通过通过参数进行函数调用,该参数评估为14。

让我们以下面的另一个示例:
<span>lambda arguments : expression</span>
<span>def greet(name):
</span>    <span>return <span>f'Hello <span>{name}</span>'</span>
</span>
greetings <span>= greet
</span>greetings<span>('Clint')
</span><span>>>>>
</span>Hello Clint
如上所述,lambda函数评估为728.0。 python lambda函数中使用了位置和关键字参数的组合。在使用位置参数时,我们无法更改函数定义中概述的顺序。但是,我们只有在位置参数之后才能将关键字参数放在任何位置。

lambda函数总是像在JavaScript中的立即调用函数表达式(IIFE)一样执行。如下所示,这主要与python解释器一起使用:>

lambda函数对象包裹在括号中,另一对括号紧密遵循通过参数。作为IIFE,评估了表达式,并且该函数返回一个分配给变量的值。

。 在列表理解中也可以执行
<span>#map function
</span>names <span>= ['Clint', 'Lisa', 'Asake', 'Ada']
</span>
greet_all <span>= list(map(greet, names))
</span><span>print(greet_all)
</span><span>>>>>
</span><span>['Hello Clint', 'Hello Lisa', 'Hello Asake', 'Hello Ada']</span>
python lambda功能。列表理解总是具有输出表达式,该输出表达式由lambda函数替换。以下是一些示例:

在Python中编写三元表达式时,可以使用 lambda函数。三元表达式根据给定条件输出结果。查看下面的示例:

<span>#filter function
</span>numbers <span>= [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
</span><span>def multiples_of_three(x):
</span>        <span>return x % 3 == 0
</span>
<span>print(list(filter(multiples_of_three, numbers)))
</span><span>>>>>
</span><span>[12, 15, 18]</span>
<span>#reduce function
</span>numbers <span>= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
</span><span>def add_numbers(x, y):
</span>        <span>return x * y
</span>
<span>print(reduce(add_numbers, numbers))
</span><span>>>>>
</span><span>55</span>

lambda在高阶功能中函数

与其他语言一样,高阶功能的概念在Python中很受欢迎。它们是接受其他函数作为参数的函数,并且还返回函数作为输出。> 在Python中,一个高阶函数需要两个参数:一个函数和一个值得的参数。函数参数应用于峰值对象中的每个项目。由于我们可以将作为参数的函数传递给高阶函数,因此我们可以同样传递lambda函数。
square_of_three <span>= 3 ** 2
</span><span>print(square_of_three)
</span><span>>>>>
</span><span>9</span>
以下是与Map()函数一起使用的lambda函数的一些示例:>
<span>for i in range(len(numbers), 0, -1):
</span>        <span>if i % 2 == 1:
</span>                <span>print(i)
</span>        <span>else:
</span>                <span>print('even')
</span><span>>>>>
</span>even <span>9 even 7 even 5 even 3 even 1</span>

这是filter()函数使用的一些lambda函数:>

这是一些lambda函数,用于reald()函数:>

结论
<span>lambda arguments : expression</span>
add_number <span>= lambda x, y : x + y
</span><span>print(add_number(10, 4))
</span><span>>>>>
</span><span>14</span>
>尽管Python lambdas可以显着减少您编写的代码线数量,但仅应在必要时谨慎使用。代码的可读性应优先考虑简洁性。对于更可读的代码,请始终使用Python样式指南的建议,在适合Lambda功能的情况下使用普通功能。

lambdas对python三元表达可能非常方便,但是再次,请不要牺牲可读性。当使用高阶功能时,Lambda功能确实会自行融入。

摘要:
discounted_price <span>= lambda price, discount = 0.1, vat = 0.02 : price * (1 - discount) * (1 + vat)
</span>
<span>print(discounted_price(1000, vat=0.04, discount=0.3))
</span><span>>>>>
</span><span>728.0</span>
    Python lambdas 非常适合编写单线功能。
  • >它们也用于IIFE(立即调用函数表达式)。
  • > 当有多个表达式时,不应使用
  • lambdas,因为它使代码不可读。
  • > Python是一种面向对象的编程语言,但Lambdas是探索Python功能编程的好方法。
  • 相关内容:

了解Python装饰师,示例

    课程:
  • 学习使用Python
  • 学习编程基础知识 Python的趋势:当今最热的语言中的热门 Python初学者面临的5个常见问题
  • 四个程序员如何获得他们的第一个Python Jobs
  • 关于Python Lambdas
  • 的常见问题
  • >
  • python中的lambda功能是什么?在Python中,lambda函数是使用lambda关键字定义的匿名,小且内联函数。它通常用于不需要完整函数定义的短期操作。
>如何定义lambda函数? lambda函数的语法为:lambda参数:表达式。例如:lambda x:x 1创建了一个lambda函数,将1添加到其参数。

lambda函数和常规函数之间的主要区别是什么? lambda功能是匿名的,通常用于短期操作。常规函数是使用DEF关键字定义的,并且可以具有多个表达式和语句。

>我什么时候应该使用lambda函数?

lambda函数适用于短而简单的操作,尤其是当您需要短期函数并且不想使用def。功能? lambda函数受到限制,因为它们只能包含一个表达式。他们不能包括语句或多行代码。

>我可以使用lambda功能进行复杂的操作吗?

> lambda函数是为简单而设计的,但它们可以在单个表达式的约束中执行复杂的操作。但是,对于更扩展和复杂的逻辑,通常最好使用常规功能。

以上是Python lambda功能指南,并带有示例的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python中的合并列表:选择正确的方法Python中的合并列表:选择正确的方法May 14, 2025 am 12:11 AM

Tomergelistsinpython,YouCanusethe操作员,estextMethod,ListComprehension,Oritertools

如何在Python 3中加入两个列表?如何在Python 3中加入两个列表?May 14, 2025 am 12:09 AM

在Python3中,可以通过多种方法连接两个列表:1)使用 运算符,适用于小列表,但对大列表效率低;2)使用extend方法,适用于大列表,内存效率高,但会修改原列表;3)使用*运算符,适用于合并多个列表,不修改原列表;4)使用itertools.chain,适用于大数据集,内存效率高。

Python串联列表字符串Python串联列表字符串May 14, 2025 am 12:08 AM

使用join()方法是Python中从列表连接字符串最有效的方法。1)使用join()方法高效且易读。2)循环使用 运算符对大列表效率低。3)列表推导式与join()结合适用于需要转换的场景。4)reduce()方法适用于其他类型归约,但对字符串连接效率低。完整句子结束。

Python执行,那是什么?Python执行,那是什么?May 14, 2025 am 12:06 AM

pythonexecutionistheprocessoftransformingpypythoncodeintoExecutablestructions.1)InternterPreterReadSthecode,ConvertingTingitIntObyTecode,whepythonvirtualmachine(pvm)theglobalinterpreterpreterpreterpreterlock(gil)the thepythonvirtualmachine(pvm)

Python:关键功能是什么Python:关键功能是什么May 14, 2025 am 12:02 AM

Python的关键特性包括:1.语法简洁易懂,适合初学者;2.动态类型系统,提高开发速度;3.丰富的标准库,支持多种任务;4.强大的社区和生态系统,提供广泛支持;5.解释性,适合脚本和快速原型开发;6.多范式支持,适用于各种编程风格。

Python:编译器还是解释器?Python:编译器还是解释器?May 13, 2025 am 12:10 AM

Python是解释型语言,但也包含编译过程。1)Python代码先编译成字节码。2)字节码由Python虚拟机解释执行。3)这种混合机制使Python既灵活又高效,但执行速度不如完全编译型语言。

python用于循环与循环时:何时使用哪个?python用于循环与循环时:何时使用哪个?May 13, 2025 am 12:07 AM

useeAforloopWheniteratingOveraseQuenceOrforAspecificnumberoftimes; useAwhiLeLoopWhenconTinuingUntilAcIntiment.ForloopSareIdeAlforkNownsences,而WhileLeleLeleLeleLoopSituationSituationSituationsItuationSuationSituationswithUndEtermentersitations。

Python循环:最常见的错误Python循环:最常见的错误May 13, 2025 am 12:07 AM

pythonloopscanleadtoerrorslikeinfiniteloops,modifyingListsDuringteritation,逐个偏置,零indexingissues,andnestedloopineflinefficiencies

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。