如何在 python 中定义常量 lambda 函数?
我需要它来评估像
这样的表达式lam (array[1,2,3,4,5])
现在我用
lam = lambda t: 1 + t*0
可以,但是会不会太浪费了?
请您参考如下方法:
如果您只想拥有一个返回相同内容的函数,无论使用什么参数调用它,都可以!您没有任何义务使用您的任何论点。
在 python 中,lambda 是一个没有名称的函数(以及一些其他不相关的限制)
如果您要采用 lambda 表达式并立即将其返回值分配给一个变量,那么您就是在为函数命名。不要那样做,只需定义一个常规函数即可。当您需要将一个函数传递给另一个函数时,您应该使用 lambda,而您要使用的函数很少,甚至不值得命名(比如当它总是返回 1 时)。 Python 有一些这样的“高阶函数”(将其他函数作为参数的函数),map、filter 和 reduce 都在内置的在命名空间中。
#never!
always_return_one = lambda ignored_argument: 1
#OK: functions with names are def'ed not lambda'd
def always_return_one(ignored_argument):
return 1
#Also OK: pass the lambda to another function as soon as you spell it.
modified_list = some_highorder_function(lambda ignored: 1, [1, 2, 3, 4, 5])
python 中一些最常用的高阶函数有特殊的语法。在上面的例子中,如果函数是 map,您可以像这样使用列表理解:
modified_list = [1 for ignored in [1, 2, 3, 4, 5]]
读起来更容易,而且始终更快!
