首页 > 解决方案 > 如何在python中维护嵌套字典的顺序(不是普通的,而是嵌套的)?

问题描述

我只是将另一个程序生成的字典复制到 python 程序(用 python 代码硬编码)。

a = {'b':{'d':3, 'c':4}, 'a':2}

但是在阅读字典时,顺序发生了变化,这造成了问题。

如果我也使用 OrderedDict,则只有顶级订单被保存,而不是内部字典。

我需要该顺序,因为我正在根据字典数据生成一棵树,这样当我从该树中读取时,我会得到相同的顺序。我正在使用 python 2 版本。

谢谢。这是python的缺点吗?

编辑:我正在使用这个单行语句:

a = OrderedDict({'b':{'d':3, 'c':4}, 'a':2})

我只是以简单的字典为例,但我的实际字典非常大,所以我无法手动将 OrderedDict 添加到所有内部字典以使其排序。在python 2中寻找解决方案,如果不可能,请在python 3中提供

标签: pythondictionarynestedpython-2.xordereddictionary

解决方案


您的内部字典也应该是 OrderedDict。

您也可以使用关联列表(键值对列表)。我认为这更接近您想要做的:尊重确切的顺序或您阅读的内容。

另一种选择是维护一个列表(用于订单)和一个访问元素的字典。这必须在每个级别上完成。


推荐阅读