为什么需要lambda来嵌套defaultdict?
Why do you need lambda to nest defaultdict?
我有点困惑为什么你需要一个 lambda 函数来嵌套 defaultdict
你为什么不能这样做?
test = defaultdict(defaultdict(list))
而不是
test = defaultdict(lambda:defaultdict(float))
test = defaultdict(defaultdict(list))
因为 defaultdict
要求您给它一些可以 调用的东西 来为缺失值创建键。 list
是这样一个可调用的,但 defaultdict(list)
不是。这是一个 defaultdict
实例,你不能调用 defaultdict
.
lambda
是一个函数,当被调用时, returns 一个可以在字典中使用的值,所以它起作用了。
本质上,defaultdict(list)
将在 之前 被评估,你的 defaultdict
被实例化,你想 延迟 直到遇到丢失的键。这就是这里使用可调用对象(类型或函数)的原因。
我有点困惑为什么你需要一个 lambda 函数来嵌套 defaultdict
你为什么不能这样做?
test = defaultdict(defaultdict(list))
而不是
test = defaultdict(lambda:defaultdict(float))
test = defaultdict(defaultdict(list))
因为 defaultdict
要求您给它一些可以 调用的东西 来为缺失值创建键。 list
是这样一个可调用的,但 defaultdict(list)
不是。这是一个 defaultdict
实例,你不能调用 defaultdict
.
lambda
是一个函数,当被调用时, returns 一个可以在字典中使用的值,所以它起作用了。
本质上,defaultdict(list)
将在 之前 被评估,你的 defaultdict
被实例化,你想 延迟 直到遇到丢失的键。这就是这里使用可调用对象(类型或函数)的原因。