不同于其他语言中的lambda表单(它们会在其中添加功能),如果您懒得定义函数,那么Python lambda只是一种简写形式。
使用lambda表达式比常规函数(如运行时优势或美观优势)有实际优势吗?在某些情况下,lambda表达式绝对必要吗?我觉得它们只是函数的有限版本,因为它们只能包含1个参数。
除了它是Alonso Church lambda演算的实现之外,我不确定它们的效用和概念是否完整。
以下计算两个数字的乘积,我发现函数版本更清晰。
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
print(mydoubler(11))
def times(a,b):
return a*b
print (times(2,11))
答案 0 :(得分:3)
Lambda可以有多个参数。当我创建功能词典时,我发现它们很合适。例如:
res = input("Unexpected Input Here")
choices = {
"x": lambda *data: data[1] / data[0]
"y": lambda *data: data[1] - data[0],
"z": lambda data1, data2: data2 * data1
...
}
choices[res](100, 20)
将它们写到多个函数中对我来说不值得。这是一个非常简单的示例,但是我将这种模式用于HTTP请求验证,熊猫数据操作等。这很棒,因为您还可以迭代字典,还可以创建函数管道(基于专门的逻辑来跳过某些键,基于通过isinstance
的值实例。