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使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
使用Python编写提取日志中的中文的脚本的方法
Apr 30 Python
Python基于有道实现英汉字典功能
Jul 25 Python
python日期时间转为字符串或者格式化输出的实例
May 29 Python
PyTorch基本数据类型(一)
May 22 Python
Python 使用多属性来进行排序
Sep 01 Python
python绘制彩虹图
Dec 16 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
Apr 20 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
May 26 Python
Python实现Excel自动分组合并单元格
Feb 22 Python
Python中的 enumerate和zip详情
May 30 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
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
深入认识javascript中的eval函数
2009/11/02 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
详解JS去重及字符串奇数位小写转大写
2016/12/29 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
vue中监听返回键问题
2019/08/28 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
python实现文本文件合并
2015/12/29 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
详解python配置虚拟环境
2019/04/08 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
纽约和芝加哥当天送花:Ode à la Rose
2019/07/05 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
中文专业毕业生自荐书范文
2014/01/04 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
英文求职信范文
2014/05/23 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
英文升职感谢信
2015/01/23 职场文书
党支部工作总结2015
2015/04/01 职场文书
内勤岗位职责范本
2015/04/13 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
关于感恩的作文
2019/08/26 职场文书