Python的collections模块中的OrderedDict有序字典


Posted in Python onJuly 07, 2016

如同这个数据结构的名称所说的那样,它记录了每个键值对添加的顺序。

d = OrderedDict()
d['a'] = 1
d['b'] = 10
d['c'] = 8
for letter in d:
  print letter

输出:   

a
b
c

如果初始化的时候同时传入多个参数,它们的顺序是随机的,不会按照位置顺序存储。

>>> d = OrderedDict(a=1, b=2, c=3)
OrderedDict([('a', 1), ('c', 3), ('b', 2)])

除了和正常的 dict 相同的方法之外,OrderedDict 还提供了和顺序相关的操作: + popitem(): 返回最后一个插入的键值对,如果 popitem(last=False) 将返回第一个插入的键值对 + reversed:返回一个逆序的 OrderedDict

实例
其实,OrderedDict可以看作是一个字典子类:

import collections
print 'Regular dictionary:'
d = {}
d['a'] = 'A'
d['b'] = 'B'
d['c'] = 'C'
for k, v in d.items():
  print k, v
print '\nOrderDict:'
d = collections.OrderedDict()
d['a'] = 'A'
d['b'] = 'B'
d['c'] = 'C'
for k, v in d.items():
  print k, v

常规dict并不跟踪插入顺序,迭代处理会根据键在散列表中存储的顺序来生成值。在OrderDict中则相反,它会记住元素插入的顺序,并在创建迭代器时使用这个顺序。

Regular dictionary:
a A
c C
b B
OrderDict:
a A
b B
c C

常规dict在检查相等性是会查看其内容,OrderDict中还会考虑元素增加的顺序。

Python 相关文章推荐
python去掉字符串中重复字符的方法
Feb 27 Python
python的re模块应用实例
Sep 26 Python
Python中使用不同编码读写txt文件详解
May 28 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
python操作excel的方法
Aug 16 Python
python读取txt文件,去掉空格计算每行长度的方法
Dec 20 Python
python实现Excel文件转换为TXT文件
Apr 28 Python
python粘包问题及socket套接字编程详解
Jun 29 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
python elasticsearch环境搭建详解
Sep 02 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 Python
Python的collections模块中namedtuple结构使用示例
Jul 07 #Python
详解Python的collections模块中的deque双端队列结构
Jul 07 #Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 #Python
Python处理json字符串转化为字典的简单实现
Jul 07 #Python
全面了解python字符串和字典
Jul 07 #Python
对于Python中RawString的理解介绍
Jul 07 #Python
python变量不能以数字打头详解
Jul 06 #Python
You might like
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
ThinkPHP3.1新特性之多层MVC的支持
2014/06/19 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
2014/11/22 PHP
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
Javascript 汉字字节判断
2009/08/01 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
用window.onerror捕获并上报Js错误的方法
2016/01/27 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
微信小程序实现图片放大预览功能
2020/10/22 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
Vue header组件开发详解
2018/01/26 Javascript
python指定写入文件时的编码格式方法
2018/06/07 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
Pycharm调试程序技巧小结
2020/08/08 Python
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
幼师专业求职推荐信
2013/11/08 职场文书
什么是岗位职责
2013/11/12 职场文书
幼儿园园长岗位职责
2013/11/26 职场文书
主持人演讲稿范文
2013/12/28 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
老乡聚会通知
2015/04/23 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
电视新闻稿
2015/07/17 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
学前班教学反思
2016/02/24 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python