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

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

Joseph Gordon-Levitt
发布: 2025-02-18 10:02:12
原创
170 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板