在本文中,您将学习匿名函数,也称为lambda
函数。您将了解它的含义,语法以及如何使用它(包含示例)。
1. lambda函数是什么?
在Python中,匿名函数是指没有定义名称的函数。
在Python中,函数通常使用def
关键字来定义,而匿名函数是用lambda
关键字来定义的。
因此,匿名函数也称为lambda
函数。
2. 如何使用lambda函数?
其语法为:
lambda arguments: expression
lambda
函数可以具有任意数量的参数,但只能有一个表达式,表达式被求值并返回。lambda
函数可在需要函数对象的任何地方使用。
示例
下面是一个lambda
函数的示例,它使输入值加倍:
# Program to show the use of lambda functions
double = lambda x: x * 2
# Output: 10
print(double(5))
输出为:
10
在上面的程序中,lambda x: x * 2
是lambda函数。这里x
是参数,x * 2
是表达式,调用时将计算表达式的值并作为返回值。
此函数没有名称,它返回一个函数对象,该对象分配给标识符double
。此后,我们可以将其称为常规函数。该声明
double = lambda x: x * 2
几乎与下面的代码无异:
def double(x):
return x * 2
3. 什么时候使用
当我们在短时间内需要一个无名函数时,我们使用lambda
函数。
在Python中,我们通常把它作为高阶函数(一个将其他函数作为参数的函数)的一个参数。lambda
函数常与一些内置函数一起使用,如filter()
、map()
等。来看两个例子:
与filter()
联合使用的例子
Python中的filter()
函数将一个函数和一个列表作为参数。
将使用列表中的所有项调用该函数,并返回一个新列表(只返回lambda
函数表达式求值为True
的项)。
下面是一个使用filter()
函数从列表中只过滤出偶数的例子:
# Program to filter out only the even items from a list
my_list = [1, 5, 4, 6, 8, 11, 3, 12]
new_list = list(filter(lambda x: (x%2 == 0) , my_list))
# Output: [4, 6, 8, 12]
print(new_list)
输出为:
[4, 6, 8, 12]
与map()
联合使用的例子
类似filter()
函数,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))
# Output: [2, 10, 8, 12, 16, 22, 6, 24]
print(new_list)
输出为:
[2, 10, 8, 12, 16, 22, 6, 24]
今天的内容就讲到这。
感谢您的阅读!想了解更多有关R语言技巧,请关注我的微信公众号“R语言和Python学堂”,我将定期更新相关文章。