Python 在嵌套字典中保持输入顺序
如何保持嵌套字典的输入顺序?具体来说:我使用另一个字典使其成为有序dict(名为'outdict')的嵌套字典,然后添加新键 示例数据:Python 在嵌套字典中保持输入顺序,python,dictionary,nested,Python,Dictionary,Nested,如何保持嵌套字典的输入顺序?具体来说:我使用另一个字典使其成为有序dict(名为'outdict')的嵌套字典,然后添加新键 示例数据: example1 = {'x': '28', 'y': 9,'z': '1999'} example2 = {'x': '12', 'y': 15,'z': '2000'} test1 = "abc" test2 = "def" 我想要的“outdict”形式是 {'one': {'x': '28', 'y': 9,'z': '1999', 'alpha':
example1 = {'x': '28', 'y': 9,'z': '1999'}
example2 = {'x': '12', 'y': 15,'z': '2000'}
test1 = "abc"
test2 = "def"
我想要的“outdict”形式是
{'one': {'x': '28', 'y': 9,'z': '1999', 'alpha': 'abc'},
'two': {'x': '12', 'y': 15,'z': '2000', 'alpha': 'def'}}
我尝试了两件事:
1.
(来自)
结果:未排序
2.
结果:未排序您不能只获取一个常规的dict并将其包装在OrderedDict()中。这不会恢复值的顺序。您需要从一开始就使用有序的dict。例如: 原来我们有
>>> example1 = {'x':'28','y':'9','z':'1999'}
>>> example1
{'y': '9', 'x': '28', 'z': '1999'}
现在是OrderedDict()
将常规无序dict的内容放入有序dict不会神奇地恢复无序dict中值的顺序 不过,您可以做一些事情:
example1
创建为OrderedDict
,以便对其值进行排序;但是,将项目作为列表传递,而不是作为dict传递,否则它们将在已排序dict中的“到达”之前再次无序
example1 = OrderedDict([('x', '28'), ('y', 9), ('z', '1999')])
OrderedDict
example1 = OrderedDict(sorted(example1.items()))
outdict["one"].update(sorted(example1.items()))
example1 = OrderedDict([('x', '28'), ('y', 9), ('z', '1999')])
example1 = OrderedDict(sorted(example1.items()))
outdict["one"].update(sorted(example1.items()))