跳到主要内容

Python Lambda/匿名函数

提示
  1. Python Lambda简介:Lambda是Python中的匿名函数,使用lambda关键字声明,无需函数名,简洁高效。
  2. Lambda函数的使用:可用于简单的单行表达式,支持带参数和不带参数的形式,适用于快速定义和执行小功能。
  3. 结合其他函数使用:Lambda可与filter()map()等函数结合,实现列表的筛选和元素处理,增强代码的灵活性。

在Python中,lambda函数是一种没有函数名称的特殊类型函数。例如,

lambda : print('你好,世界')

在这里,我们创建了一个打印'你好,世界'的lambda函数。

在了解lambda之前,确保了解Python函数

Python lambda函数声明

我们使用lambda关键字而不是def来创建lambda函数。以下是声明lambda函数的语法:

lambda 参数 : 表达式

这里,

  • 参数 - 传递给lambda函数的任何值
  • 表达式 - 执行并返回的表达式

让我们看一个例子,

greet = lambda : print('你好,世界')

在这里,我们定义了一个lambda函数并将其赋值给变量greet。

要执行这个lambda函数,我们需要调用它。以下是我们如何调用lambda函数

# 调用lambda
greet()

上面的lambda函数简单地打印了文本'你好,世界'

注意:这个lambda函数没有任何参数。

例子:Python lambda函数

# 声明一个lambda函数
greet = lambda : print('你好,世界')

# 调用lambda函数
greet()

# 输出:你好,世界

在上面的例子中,我们定义了一个lambda函数并将其赋值给greet变量。

当我们调用lambda函数时,lambda函数内的print()语句被执行。

带参数的Python lambda函数

与普通函数一样,lambda函数也可以接受参数。例如,

# 接受一个参数的lambda
greet_user = lambda name : print('嘿,', name)

# 调用lambda
greet_user('Delilah')

# 输出:嘿,Delilah

在上面的例子中,我们将一个lambda函数赋值给了greet_user变量。

这里,lambda关键字后的name指定了lambda函数接受名为name的参数。

注意lambda函数的调用,

greet_user('Delilah')

这里,我们向我们的lambda函数传递了一个字符串值'Delilah'

最后,lambda函数内的语句被执行。

常见问题

如何结合filter()使用lambda函数?

Python中的filter()函数接受一个函数和一个可迭代对象(列表,元组和字符串)作为参数。

函数对列表中的所有项目进行调用,返回一个新列表,该列表包含使函数返回True的项目。

让我们看一个例子,

# 程序过滤掉列表中的偶数项
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]

这里,filter()函数仅从列表中返回偶数。

如何结合map()使用lambda函数?

Python中的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]

这里,map()函数将列表中的所有项目翻倍。