编辑这个页面须要登录或更高权限!

Python 匿名函数(Lambda)

在本文中,您将了解匿名函数,也称为lambda函数。通过示例您将了解它们是什么、它们的语法以及如何使用它们。

什么是Python中的lambda函数?

在Python中,匿名函数是没有定义名称的函数

虽然def在Python中使用关键字定义了普通函数,但使用关键字定义了匿名函数lambda。

因此,匿名函数也称为lambda函数。

如何在Python中使用lambda函数?

python中的lambda函数具有以下语法。

python中Lambda函数的语法

lambda arguments: expression

Lambda函数可以具有任意数量的参数,但只能有一个表达式。表达式被求值并返回。Lambda函数可在需要函数对象的任何地方使用。

python中的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

在python中使用Lambda函数

当我们临时需要匿名函数时,我们使用lambda函数。

在Python中,我们通常将其用作高阶函数的参数(该函数将其他函数作为arguments)。Lambda函数可以与filter(),map()等内置函数一起使用。

lambda与filter()一起使用的示例

在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]

lambda与map()一起使用的示例

在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]

                                                                                                                                                                                                   

Python 基础教程
Python 流程控制
Python 函数
Python 数据类型
Python 文件操作
Python 对象和类
Python 日期和时间
Python 高级知识
Python 参考手册