lambda表达式比常规函数有什么优势?

时间:2020-06-15 17:53:21

标签: python lambda

From the docs

不同于其他语言中的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))

1 个答案:

答案 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的值实例。

相关问题