原文: https://www.programiz.com/python-programming/anonymous-function
在本文中,您将学习匿名函数,也称为 lambda 函数。 您将了解它们的含义,语法以及如何使用它们(包含示例)。
什么是 Python 中的 lambda 函数?
在 Python 中,匿名函数是函数,其定义时没有名称。
使用 Python 中的def关键字定义普通函数时,使用lambda关键字定义匿名函数。
因此,匿名函数也称为 lambda 函数。
如何在 Python 中使用 lambda 函数?
python 中的 lambda 函数具有以下语法。
python 中 Lambda 函数的语法
lambda arguments: expression
Lambda 函数可以具有任意数量的参数,但只能有一个表达式。 该表达式被求值并返回。 Lambda 函数可在需要函数对象的任何地方使用。
python 中的 Lambda 函数示例
这是一个使输入值加倍的 lambda 函数示例。
# Program to show the use of lambda functionsdouble = lambda x: x * 2print(double(5))
输出
10
在上述程序中,lambda x: x * 2是 lambda 函数。 这里x是自变量,x * 2是要求值并返回的表达式。
此函数没有名称。 它返回分配给标识符double的函数对象。 现在我们可以将其称为常规函数。 该声明
double = lambda x: x * 2
几乎与:
def double(x):return x * 2
在 Python 中使用 Lambda 函数
当我们在短时间内需要无名函数时,我们使用 lambda 函数。
在 Python 中,我们通常将其用作高阶函数的参数(该函数将其他函数作为参数)。 Lambda 函数与filter(),map()等内置函数一起使用。
与filter()一起使用的示例
Python 中的filter()函数采用一个函数和一个列表作为参数。
将使用列表中的所有项目调用该函数,并返回一个新列表,其中包含该函数求值为True的项目。
这是使用filter()函数的示例,该函数仅从列表中过滤出偶数。
# Program to filter out only the even items from a listmy_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]
与map()一起使用的示例
Python 中的map()函数接受一个函数和一个列表。
将使用列表中的所有项目调用该函数,并返回一个新列表,其中包含该函数为每个项目返回的项目。
这是使用map()函数将列表中所有项目加倍的示例。
# Program to double each item in a list using 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]
