更多嵌套 Python 嵌套字典
c = collections.defaultdict(collections.defaultdict(int))
字典? 为什么在 python 中 ?我认为这可以产生
{key:{key:1}}
,还是我想错了?
After reading What is the best way to implement nested dictionaries? why is it wrong to do:
c = collections.defaultdict(collections.defaultdict(int))
in python? I would think this would work to produce
{key:{key:1}}
or am I thinking about it wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
defaultdict
的构造函数需要一个可调用的。defaultdict(int)
是默认字典对象,而不是可调用对象。但是,使用 lambda 可以工作:这是有效的,因为我传递给外部 defaultdict 的是一个可调用对象,它在调用时创建一个新的 defaultdict 。
这是一个例子:
The constructor of
defaultdict
expects a callable.defaultdict(int)
is a default dictionary object, not a callable. Using alambda
it can work, however:This works since what I pass to the outer
defaultdict
is a callable that creates a newdefaultdict
when called.Here's an example:
Eli Bendersky 为这个问题提供了一个很好的直接答案。 重组数据也可能会更好。
根据您的实际需要
Eli Bendersky provides a great direct answer for this question. It might also be better to restructure your data to
depending on what you actually need.