- 字典中的元素是无序的
- 可以用collections模块中的OrderedDict类来控制元素最初添加的顺序
,使字典变得有序
from collections import OrderedDict
d = OrderedDict()
d['a'] = 1
d['c'] = 3
d['b'] = 2
>>> d
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
for k in d:
print (k, d[k])
a 1
c 3
b 2
- 实现原理:相当于用列表(有序)来维护字典(无序)排序,仅供理解
d = {'a':'1', 'c':'3', 'b':'2'}
l = ['a', 'c', 'b']
for i in l:
print (d.get(i))
- 实际OrderedDict内部维护了一个双向链表,他会根据元素加入的顺序来排列键的位置,第一个新加入的元素被放置在链表的末尾,对已存在的键做重新赋值,不会改变键的顺序,所以OrderedDict的大小是普通字典的2倍多,大数据使用时要考虑实际的额外开销。