Python 字典排序
问题
想创建一个字典,并且在迭代或序列化这个字典的时候能够控制元素的顺序。
解决方案
为了能控制一个字典中元素的顺序,可以使用 collections
模块中的 OrderedDict
类。可以在迭代的时候保持元素被插入时的顺序
>>> from collections import OrderedDict
>>> d = OrderedDict()
>>> d['foo'] = 1
>>> d['bar'] = 2
>>> d['spam'] = 3
>>>
>>> for key in d:
... print(key, d[key])
...
foo 1
bar 2
spam 3
OrderedDict
内部是一个双向链表, 他的大小是普通字典的两倍。所以在数据非常大的时候需要考虑它带来的好处是否大过内存消耗的影响