OrderedDict分析

  • 字典中的元素是无序的
  • 可以用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倍多,大数据使用时要考虑实际的额外开销。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、集合入门总结 集合框架: Java中的集合框架大类可分为Collection和Map;两者的区别: 1、Col...
    程序员欧阳阅读 14,000评论 2 61
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 7,110评论 0 4
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 9,917评论 1 14
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,440评论 17 410
  • 船中漫游周庄,桥中景尽收眼底,美......
    小洛米阅读 1,774评论 0 5

友情链接更多精彩内容