我从数据库(CoachDb)中获得了未排序的子子对象的简单列表,我想使用字典对对象树中的对象进行排序。

我的对象树如下所示:

object.subobject.subsubobject


每个对象类型在对象级别内都有一个唯一的ID。
我的想法是从文档中获取ID并将对象插入对象树中:

oid = doc.getId("object")
soid = doc.getId("subobject")
ssoid = doc.getId("subsubobject")

objtree[oid][soid][ssoid] = doc


能行吗?
如果是,我应该如何初始化objtree变量以使用此类嵌套索引?

我试过了

objtree = {{{}}}


但这没用。

最佳答案

您可以使用collections.defaultdict

>>> from collections import defaultdict
>>> objtree = defaultdict(lambda: defaultdict(dict))
>>> objtree[1][2][3] = 1
>>> objtree
defaultdict(<function <lambda> at 0x99a0ed4>,
            {1: defaultdict(<type 'dict'>, {2: {3: 1}})})
>>> objtree[1][2][3]
1

关于python - 用嵌套字典文字初始化变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22605788/

10-10 07:59