示例字典:
dictionary = {}
dictionary['a'] = 1
dictionary['b'] = 2
dictionary['c'] = 3
dictionary['d'] = 4
dictionary['e'] = 5
print(dictionary)
第一次运行此代码:
{'c': 3, 'd': 4, 'e': 5, 'a': 1, 'b': 2}
第二
{'e': 5, 'a': 1, 'b': 2, 'd': 4, 'c': 3}
第三
{'d': 4, 'a': 1, 'b': 2, 'e': 5, 'c': 3}
我的预期结果:
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
或者我的代码是:
dictionary = {}
dictionary['r'] = 150
dictionary['j'] = 240
dictionary['k'] = 98
dictionary['l'] = 42
dictionary['m'] = 57
print(dictionary)
#The result should be
{'r': 150, 'j': 240, 'k': 98, 'l': 42, 'm': 57}
由于我的项目,带有100个++列表的字典将写入文件,并且更容易阅读。
P.S。抱歉我的英语,如果我的问题标题不清楚。
谢谢。
答案 0 :(得分:3)
Python dict
本质上是无序的。要维护插入元素的顺序,请使用collection.OrderedDict()
。
示例运行:
>>> from collections import OrderedDict
>>> dictionary = OrderedDict()
>>> dictionary['a'] = 1
>>> dictionary['b'] = 2
>>> dictionary['c'] = 3
>>> dictionary['d'] = 4
>>> dictionary['e'] = 5
# first print
>>> print(dictionary)
OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])
# second print, same result
>>> print(dictionary)
OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5)])
要将其写入json文件,可以使用string
将dict对象转储到json.dumps()
,如下所示:
>>> import json
>>> json.dumps(dictionary) # returns JSON string
'{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}'
根据collections.OrderedDict()
document:
返回一个dict子类的实例,支持通常的dict方法。 OrderedDict是一个dict,它记住了第一次插入键的顺序。如果新条目覆盖现有条目,则原始插入位置保持不变。删除一个条目并重新插入它将把它移到最后。
答案 1 :(得分:1)
阅读OrderedDict
。
https://docs.python.org/2/library/collections.html#collections.OrderedDict
它会记住按键的插入顺序。