1. OrderedDict
  2. 使用dict时,Key是无序的。在对dict做迭代时,我们无法确定Key的顺序。
  3. 如果要保持Key的顺序,可以用OrderedDict:
  4. >>> from collections import OrderedDict
  5. >>> d = dict([('a', 1), ('b', 2), ('c', 3)])
  6. >>> d # dict的Key是无序的
  7. {'a': 1, 'c': 3, 'b': 2}
  8. >>> od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
  9. >>> od # OrderedDict的Key是有序的
  10. OrderedDict([('a', 1), ('b', 2), ('c', 3)])
  11. 注意,OrderedDict的Key会按照插入的顺序排列,不是Key本身排序:
  12. >>> od = OrderedDict()
  13. >>> od['z'] = 1
  14. >>> od['y'] = 2
  15. >>> od['x'] = 3
  16. >>> od.keys() # 按照插入的Key的顺序返回
  17. ['z', 'y', 'x']
  18. OrderedDict可以实现一个FIFO(先进先出)的dict,当容量超出限制时,先删除最早添加的Key:
  19. from collections import OrderedDict
  20. class LastUpdatedOrderedDict(OrderedDict):
  21. def __init__(self, capacity):
  22. super(LastUpdatedOrderedDict, self).__init__()
  23. self._capacity = capacity
  24. def __setitem__(self, key, value):
  25. containsKey = 1 if key in self else 0
  26. if len(self) - containsKey >= self._capacity:
  27. last = self.popitem(last=False)
  28. print 'remove:', last
  29. if containsKey:
  30. del self[key]
  31. print 'set:', (key, value)
  32. else:
  33. print 'add:', (key, value)
  34. OrderedDict.__setitem__(self, key, value)

OrderedDict的更多相关文章

  1. Python: sort,sorted,OrderedDict的用法

    Python: sort,sorted,OrderedDict的用法 from http://stqdd.com/archives/427 by 莫亚菜 python对容器内数据的排序有两种,一种是容 ...

  2. python模块介绍- collections(5)-OrderedDict 有序字典

    1.3.5 OrderedDict 有序字典 OrderedDict是dict的子类,它记住了内容添加的顺序. import collections print 'Regular dictionary ...

  3. Python - DICT 字典排序 - OrderedDict

    官方地址: https://docs.python.org/2/library/collections.html#collections.OrderedDict >>> # regu ...

  4. python-Day3-set 集合-counter计数器-默认字典(defaultdict) -可命名元组(namedtuple)-有序字典(orderedDict)-双向队列(deque)--Queue单项队列--深浅拷贝---函数参数

    上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, ...

  5. dict、defaultdict 和 OrderedDict 比较

    一.dict.defaultdict 和 OrderedDict 常见的方法比较 dict.defaultdict 和 OrderedDict 常见的方法比较   dict defaultdict O ...

  6. Collections -- OrderedDict类

    普通dict(字典)在插入的时候并不记住元素的顺序,迭代器会根据散列表(哈希表)中存储的顺序来生成的.而OrderedDict则会记录元素的顺序,并且在迭代器输出时,会按现在记录的顺序进行遍历. 例: ...

  7. python3 OrderedDict类(有序字典)

    创建有序字典 import collections dic = collections.OrderedDict() dic['k1'] = 'v1' dic['k2'] = 'v2' dic['k3' ...

  8. Python 有序字典(OrderedDict)与 普通字典(dict)

    Python 的基础数据类型中的字典类型分为:无序字典 与 有序字典 两种类型 1.无序字典(普通字典): my_dict = dict()my_dict["name"] = &q ...

  9. python之OrderedDict类

    # OrderedDict类使用举例 # OrderedDict类的使用与字典相似,不同的是OrderedDict类会记录键值对的添加顺序 from collections import Ordere ...

随机推荐

  1. solr 搜索引擎及搜索推荐应用

    搜索框里输入关键字,从mongodb里搜索出关键字相关关键字记录.用户从相关关键字里选取一个作为最后关键字从solr里查询数据. 1创建索引:从sql里goodsinfo表查所有记录,solr.Add ...

  2. 多项式逼近remes算法

    http://wenku.baidu.com/link?url=gpaBIucx0ov0ez3QHrO4FooBtNz2i80s4LKsh-LV3NnPYNjTUu7e1V7bT_jMHwOUZk4X ...

  3. IOS--- NavigationBar标题按钮

    A.NavigationBar标题按钮 1.需求 在“首页”的导航栏中部设置一个“首页”文字+箭头按钮 统一设置样式 根据实际文本长度调整宽度 消除系统自带的点击高亮效果 点击按钮,箭头上下颠倒 gi ...

  4. Building and setting up QT environment for BeagleBone

    There are too few information available on how to easily setup QT environment for building Beaglebon ...

  5. install lua client for redis-server on Mac

    1. lua client library for redis-server https://github.com/nrk/redis-lua 2. dependent luasocket https ...

  6. 移动平台作业——天气预报——天气数据的获得——为应用申请百度ak码

    需求: 可切换城市 可实时更新(按钮或手势或下拉刷新) 可现实未来三日的天气 不限制横屏或者竖屏,不限制布局样式,但要求得到的数据均需显示(北京.天气数据.天气图标) 提示: 获得实时天气数据(任选一 ...

  7. Modify the average program to promote for intergers repeatedly.stop when a nagetive number is entere

    #include<stdio.h> int main(void) { intcount ,sum,aninterger; printf("enterthe interger an ...

  8. Smokeping 监控部署及配置

    安装参见: https://github.com/oetiker/SmokePing/blob/master/doc/smokeping_install.pod 1 Smokeping *** Gen ...

  9. git设计哲学

    刚开始使用git的时候,总想拿git来和cvs或者svn来作对比,但不久后发现这个想法本身就是错的,git完全就是另外一种物种,一种本属于未来的物种.它的对象存储方式,快照,分支等,都是完全不同的. ...

  10. 网易游戏QA工程师笔试回忆-2012.9【个人题解】

    ========================转帖======================== 网易游戏QA工程师笔试回忆-2012.9 刚刚从武大回来,趁热回忆下题目,给以后的XDJMs参考. ...