Python初级教程(18): 匿名函数

在本文中,您将学习匿名函数,也称为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学堂”,我将定期更新相关文章。

你可能感兴趣的:(Python初级教程(18): 匿名函数)