Python中的Lambda函数是什么,为什么我们需要它?
在本文中,我们将学习Python中的Lambda函数以及为什么我们需要它,并看一些Lambda函数的实际例子。
阅读更多:Python 教程
Python中Lambda函数是什么?
Lambda函数,常被称为 ‘匿名函数’ 与普通的Python函数相同,只是它可以定义 没有名称。 使用 def 关键字来定义普通函数,而使用 lambda 关键字来定义匿名函数。 但是,它们仅限于单个表达式行。 和普通函数一样,它们可以接受多个参数。
语法
- 此函数接受任意数量的输入,但仅评估并返回一个表达式。
-
Lambda函数可以用于需要函数对象的任何地方。
-
您必须记住,Lambda函数在语法上仅限于单个表达式。
-
除了函数中的其他类型的表达式外,在特定的编程领域中它具有各种各样的用途。
我们为什么需要Lambda函数?
-
与使用 def 关键字编写的普通Python函数相比,Lambda函数需要更少的代码行。 不过,这并不完全正确,因为使用def定义的函数可以在单行中定义。 但是, def 函数通常是由多行定义的。
-
当需要一个函数用于较短时期(临时),通常要在其他函数内使用该函数,例如filter,map或reduce时,通常会使用它们。
-
使用Lambda函数可以定义一个函数并立即在定义的末尾调用它。 这对于def函数是不可能的。
Python Lambda函数的简单示例
示例
输出
执行上述程序后,将生成以下输出:
在条件检查中使用Lambda函数
示例
输出
执行上述程序后,将生成以下输出:
Lambda函数和使用def定义的函数之间有什么区别?
示例
输出
执行上述程序后,将会生成以下输出:
如上例所示, square() 和 lambda_square() 函数工作相同并且预期 。让我们更仔细地查看示例,并找出它们之间的区别。
使用 lambda 函数 | 不使用 lambda 函数 |
---|---|
支持返回一些值的单行语句。 | 允许在函数块内使用任意数量的行。 |
非常适合进行小操作或数据操作。 | 在需要多行代码的情况下很有用。 |
减少了代码可读性。 | 我们可以通过使用注释和函数说明来提高可读性。 |
Python lambda 函数的实际用途
示例
使用 Lambda 函数与列表推导式
输出
在执行上述程序时,将生成以下输出。
在列表推导的每次迭代中,都将创建一个新的 lambda 函数,其中默认参数 y (其中 y 是迭代中的当前项目)。稍后,在 for 循环中,我们使用 i() 调用相同的函数对象并使用默认参数获取所需的值。因此, is_odd_list 保存了 lambda 函数对象的列表。
示例
使用 Lambda 函数和 if-else 条件语句
输出
在执行上述程序时,将生成以下输出。
示例
使用 lambda 函数和多个语句
输出
在执行上述程序时,将生成以下输出。
Python lambda 函数与 filter()
示例
输出
在执行上述程序时,将生成以下输出。
Python lambda 函数与 map()
Python 的 map() 函数接受函数和列表作为参数。该函数使用 lambda 函数和列表进行调用,并返回包含每个项目的 lambda 修改后的新列表。
示例
使用 lambda 和 map() 函数将所有列表元素转换为小写字母
输出
执行以上程序将生成以下输出 –
结论
在本教程中,我们深入学习了 Python 中的 lambda 函数,并提供了多个示例。我们还学习了 lambda 函数和 def 函数之间的区别。