在本文中,您将了解匿名函数,也称为lambda函数。通过示例您将了解它们是什么、它们的语法以及如何使用它们。
在Python中,匿名函数是没有定义名称的函数。
虽然def在Python中使用关键字定义了普通函数,但使用关键字定义了匿名函数lambda。
因此,匿名函数也称为lambda函数。
python中的lambda函数具有以下语法。
lambda arguments: expression
Lambda函数可以具有任意数量的参数,但只能有一个表达式。表达式被求值并返回。Lambda函数可在需要函数对象的任何地方使用。
这是一个使输入值翻倍的lambda函数示例。
# 程序展示lambda函数的使用 double = lambda x: x * 2 print(double(5))
输出结果
10
在上面的程序中,lambda x: x * 2是lambda函数。这里x是参数,x * 2是求值和返回的表达式。
这个函数没有名字。它返回一个函数对象,该对象被分配给标识符double。我们现在可以把它叫做普通函数。下面声明
double = lambda x: x * 2
等同于:
def double(x): return x * 2
当我们临时需要匿名函数时,我们使用lambda函数。
在Python中,我们通常将其用作高阶函数的参数(该函数将其他函数作为arguments)。Lambda函数可以与filter(),map()等内置函数一起使用。
在Python函数中filter()接受一个函数和一个列表作为参数。
使用列表中的所有项调用该函数,并返回一个新列表,其中包含函数计算结果为True的项。
这是使用filter()函数从列表中仅滤除偶数的示例。
# 程序从列表中过滤出偶数项 my_list = [1, 5, 4, 6, 8, 11, 3, 12] new_list = list(filter(lambda x: (x%2 == 0) , my_list)) print(new_list)
输出结果
[4, 6, 8, 12]
在Python中的map()函数接受一个函数和一个列表。
使用列表中的所有项调用该函数,并返回一个新列表,其中包含该函数为每个项返回的项。
这是使用map()函数将列表中所有项目翻倍的示例。
# 使用map()将列表中的每个项加倍 my_list = [1, 5, 4, 6, 8, 11, 3, 12] new_list = list(map(lambda x: x * 2 , my_list)) print(new_list)
输出结果
[2, 10, 8, 12, 16, 22, 6, 24]