本文介绍了python lambda函数以及如何编写和使用它们。
>尽管Python是一种面向对象的编程语言,但在执行各种功能编程时,Lambda功能很方便。>
注意:本文将假定您已经了解Python编程以及如何使用常规功能。还认为您在设备上安装了Python 3.8或更高。 钥匙要点
Python lambda函数是匿名的,通常是使用“ lambda”关键字定义的单行函数,通常在诸如MAP()和filter()之类的高阶函数中使用。他们可以处理列表理解,并且对于在UI框架中有条件渲染很有用。> lambda函数对于处理Python中的列表理解也非常有用 - 为此目的使用Python Lambda表达式各种选项。
>>在进行python lambda函数之前要理解的事情
>
可以将函数对象分配给变量。>
>将变量分配给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
>
<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>
>表达式是由变量,值和运算符组合组合的,并评估为新值。
陈述看起来像这样:
square_of_three <span>= 3 ** 2 </span><span>print(square_of_three) </span><span>>>>> </span><span>9</span>
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表达式分配给变量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函数总是像在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中编写三元表达式时,可以使用
<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中很受欢迎。它们是接受其他函数作为参数的函数,并且还返回函数作为输出。square_of_three <span>= 3 ** 2 </span><span>print(square_of_three) </span><span>>>>> </span><span>9</span>
<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函数,用于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>
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装饰师,示例
以上是Python lambda功能指南,并带有示例的详细内容。更多信息请关注PHP中文网其他相关文章!