Python 如何使用Lambda函数
Python Lambda函数的匿名特性意味着它们没有名字。正如我们已经知道的,标准的Python函数是使用def关键字定义的。类似于此,lambda关键字在Python中被用来声明一个匿名函数。
语法
在Python中,lambda表达式的语法如下:
lambda arguments: expression
无论参数的数量如何,在该函数中只有一个表达式被计算和返回。
Lambda函数可以在需要函数对象的任何地方使用。
必须始终记住Lambda函数在语法上被限制为只有一个表达式。除了函数中的其他种类的表达式外,在编程的某些领域中它有各种用途。它们会即时返回函数的定义。
Lambda函数不包含返回语句,它们总是返回一个表达式。您可以随时在需要函数的任何地方放置一个Lambda定义。假设我们有一个只会使用一次并且只会从一个地方调用的函数,那么我们可以使用Lambda函数。因此,您不需要给它一个名称,可以直接在那里定义功能。因此,我们消除了使用函数并使用Lambda表达式的需要。
示例1
让我们看一个示例,以下示例中的一个Lambda函数。
# Python program to demonstrate lambda functions
x ="HelloWorld"
# lambda gets pass to print
(lambda x : print(x))(x)
输出
得到以下输出。
HelloWorld
示例2
让我们来看一个使用lambda函数添加数字的示例。在下面的示例中,我们将一个int值作为lambda函数的单个参数,该函数将给定的数字加上100。
x = lambda a : a + 100
print(x(5))
输出
下面是获取的输出结果。
105
示例3
如上面的示例所示,我们给lambda函数一个单一参数作为输入,我们也可以给它多个参数作为输入。让我们看一个带有多个参数的示例。
x = lambda a, b : a * b
print(x(9, 1))
输出
下面是获得的输出。
9
示例4
让我们来看一个用于列表推导的 lambda 函数。
列表 用于在一个变量中存储多个项。Python 中用于存储数据集合的内置数据类型之一是列表;另外三种是元组、集合和字典,每种数据类型都有其独特的用途。当你想要根据现有列表的值创建一个新列表时, 列表推导 提供了一种更简洁的语法。
tables = [lambda x=x: x*10 for x in range(1, 11)]
for table in tables:
print(table())
输出
以下是所获得的输出。
10
20
30
40
50
60
70
80
90
100
示例5
虽然在lambda函数中不允许使用多个语句,但我们可以创建两个lambda函数,然后将其中一个作为参数调用另一个。让我们使用lambda来搜索第二大的元素。
List = [[4,3,4],[9, 4, 16, 64],[3, 6, 9, 12]]
#Sorting sublist
sortList = lambda x: (sorted(i) for i in x)
# Get the second largest element
secondLargest = lambda x, f : [y[len(y)-2] for y in f(x)]
result = secondLargest(List, sortList)
print(result)
输出
输出结果如下:
[4, 16, 9]