美文网首页
OrderedDict分析

OrderedDict分析

作者: 孙广宁 | 来源:发表于2018-05-09 21:13 被阅读0次
  • 字典中的元素是无序的
  • 可以用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倍多,大数据使用时要考虑实际的额外开销。

相关文章

网友评论

      本文标题:OrderedDict分析

      本文链接:https://www.haomeiwen.com/subject/habnrftx.html