【问题标题】:What if the lambda function does not have any argument in python3?如果 lambda 函数在 python3 中没有任何参数怎么办?
【发布时间】:2020-08-31 03:34:42
【问题描述】:

最近看了一行代码,不明白什么意思,代码是

import collections
d = collections.defaultdict(lambda : [-1, -1, -1])

我对这里的lambda 感到困惑。我只知道lamnda x: x+1。通常,我们有一个lambda 的参数。如果我们没有像这段代码这样的参数怎么办?

非常感谢,

【问题讨论】:

    标签: python-3.x lambda arguments


    【解决方案1】:

    是的,我们可以定义一个不带任何参数的 lambda 函数。但是,这将是无用的,因为没有什么可操作的。让我们看一个简单的例子。

    get_5 = lambda: 5
    
    print(get_5())  # 5
    

    由于 lambda 函数总是返回相同的值,我们可以给它分配一个变量。使用不带任何参数的 lambda 函数是对这个特性的明显滥用。


    d = collections.defaultdict([-1, -1, -1])
    

    产生错误:

    TypeError: first argument must be callable or None
    

    因为 list 是不可调用的,但 lambda 函数是可调用的。

    【讨论】:

      【解决方案2】:

      即使在 python 中没有 lambda 变量,也可以有效地使用 Lambda 函数。 lambda函数的一般使用流程如下所示

      在一般功能使用情况下是

      def identity(x):
          return x+1
      

      在 lambda 的情况下

      lambda x:x+1
      

      无变量

      lambda :x
      

      将返回与 x 相同的结果。

      没有变量,lambda 函数在没有任何操作的情况下保持空闲,因此可以在没有变量的情况下使用它来获得相同的答案。 在没有动作变量的情况下精确使用 lambda 只是额外的一行代码。但它是有效的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-02-08
        • 2023-03-17
        • 1970-01-01
        • 2013-06-22
        • 1970-01-01
        • 1970-01-01
        • 2012-12-20
        相关资源
        最近更新 更多