学生如何写好Ph的Lambda函数

如题所述

如何写好Python Lambda函数

如何写好Python的Lambda函数

当你需要完成一件小工作时,在本地环境中使用这个函数,可以

让工作如此得心应手, 它就是Lambda函数。

Lambda函数是Python中的匿名函数。有些人将它们简称为

lambdas, 它们的语法如下:

lambda arguments:expression

lambda关键字可以用来创建一个lambda函数, 紧跟其后的

是参数列表和用冒号分割开的单个表达式。例如, lambda x: 2

*x是将任何输入的数乘2, 而lambda x, y:x+y是计算两个

数字的和。语法十分直截了当,对吧?

假设你知道什么是lambda函数, 这里为你提供有关如何正确使

用lambda函数的一些常规准则。

1.不要返回任何值

看看语法, 您可能会注意到我们在lambda函数中并没有返回任

何内容。这都是因为lambda函数只能包含一个表达式。然而,

使用return关键字会构成不符合规定语法的语句, 如下所示:

如何写好Python的Lambda函数

该错误可能是由于无法区分表达式和语句而引起的。像是包含

return、try、with以及if的语句会执行特殊动作。然而, 表

达式指的是那些可以被计算出一个值的表达,例如数值或其他

Python对象。

通过使用lambda函数, 单个表达式会被计算为一个值并且参与

后续的计算, 例如由sorted函数排序。

2.不要忘记更好的选择

lambda函数最常见的使用场景是将它作为一些内置工具函数中

key的实参, 比如上面展示的sorted() 和max() 。根据情况

,我们可以使用其他替代方法。思考下面的例子:

如何写好Python的Lambda函数

在数据科学领域, 很多人使用pandas库来处理数据。如下所示

, 我们可以使用lambda函数通过map() 函数从现有数据中创

建新数据。除了使用lambda函数外, 我们还可以直接使用算术

函数, 因为pandas是支持的:

如何写好Python的Lambda函数

3.不要将它赋值给变量

对lambda函数命名的唯一作用可能是出于教学目的, 以表明

lambda函数的确是和其他函数一样的函数——可以被调用并且

具有某种功能。除此之外, 我们不应该将lambda函数赋值给变

量。

为lambda函数命名的问题在于这使得调试不那么直观。与其他

的使用常规def关键字创建的函数不同, lambda函数没有名

字,这也是为什么有时它们被称为匿名函数的原因。思考下面简

单的例子:

如何写好Python的Lambda函数

当您的代码存在关于lambda函数的问题(即in versi veO)

, Traceback错误信息只会提示您lambda函数存在问题。

相比之下, 使用正常定义的函数, Traceback会清晰地提示您有

问题的函数(即inver sive 1) 。

与此相关, 如果您想多次使用lambda函数, 最佳实践是使用通

过def定义的允许使用文档字符串的常规函数。

4.不要忘记列表推导式

有些人喜欢将lambda函数和高阶函数一起使用, 比如map

或filter。思考下面用法示例:

我们可以使用可读性更强的列表推导式代替lambda函数。如下

所示,我们使用列表推导式来创建相同的列表对象。与列表推导

如何写好Python的Lambda函数

式相比, 之前将map或filter函数与lambda函数一起使用

更麻烦。因此,在创建涉及高阶函数的列表时,应考虑使用列表

推导式。

通过避免这些错误, 你应该能在代码中正确使用lambda函数。

使用lambda函数的经验准则是保持简单以及只在本地使用一次





温馨提示:答案为网友推荐,仅供参考