【问题标题】:Why do you need lambda to nest defaultdict?为什么需要 lambda 嵌套 defaultdict?
【发布时间】:2015-06-03 01:02:40
【问题描述】:

我有点困惑为什么你需要一个 lambda 函数来嵌套 defaultdict

你为什么不能这样呢?

test = defaultdict(defaultdict(list))

而不是

test = defaultdict(lambda:defaultdict(float))

【问题讨论】:

    标签: python lambda defaultdict


    【解决方案1】:
    test = defaultdict(defaultdict(list))
    

    因为defaultdict 要求你给它一些可以调用的东西来为缺失值创建键。 list 是这样一个可调用的,但 defaultdict(list) 不是。这是一个defaultdict 实例,你不能调用defaultdict

    lambda 是一个函数,当被调用时,返回一个可以在字典中使用的值,所以它可以工作。

    基本上,defaultdict(list) 将在您的defaultdict 被实例化之前被评估,并且您希望推迟直到遇到丢失的键。这就是这里使用可调用对象(类型或函数)的原因。

    【讨论】:

    • list 的类比当然是lambda: list()
    猜你喜欢
    • 2021-11-28
    • 2017-12-15
    • 2013-10-11
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    相关资源
    最近更新 更多