python - 如何在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中提供
解决方案
您的内部字典也应该是 OrderedDict。
您也可以使用关联列表(键值对列表)。我认为这更接近您想要做的:尊重确切的顺序或您阅读的内容。
另一种选择是维护一个列表(用于订单)和一个访问元素的字典。这必须在每个级别上完成。
推荐阅读
- scala - (Scala TYPE-SAFETY)仅当字符串中包含 .txt 扩展名时才将字符串作为参数,否则会编译错误吗?
- javascript - node.js 中的 Haste 模块映射是什么?
- javafx - 可以打开fontawesomefx-glyphsbrowser-windows批处理文件
- c - 调整代码以复制/粘贴 .zip 和 .tar.gzip 文件?
- angular - 将 ngModel 用于列的选择选项
- javascript - 如果在超时内没有 next(...) 调用,则重试(重新订阅)源 observable
- typescript - 无铸型联合式工厂
- .net - 如何在 Docker 中挂载 AWS I3 实例存储设备并从 C# 应用程序使用
- batch-file - 每个文件夹写入校验和
- javascript - 自定义的内置元素在 Electron 中不起作用