Python OrderedDict的使用案例解析


Posted in Python onOctober 25, 2019

这篇文章主要介绍了Python OrderedDict的使用案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集、集合),里面自带了一个子类

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 "\nOrder dictionary"
d1 = collections.OrderedDict()
d1['a'] = 'A'
d1['b'] = 'B'
d1['c'] = 'C'
d1['1'] = '1'
d1['2'] = '2'
for k,v in d1.items():
  print k,v

输出:
Regular dictionary
a A
c C
b B

Order dictionary
a A
b B
c C
1 1
2 2

可以看到,同样是保存了ABC等几个元素,但是使用OrderedDict会根据放入元素的先后顺序进行排序。所以输出的值是排好序的。

OrderedDict对象的字典对象,如果其顺序不同那么Python也会把他们当做是两个不同的对象,请看事例:

print 'Regular dictionary:'
d2={}
d2['a']='A'
d2['b']='B'
d2['c']='C'

d3={}
d3['c']='C'
d3['a']='A'
d3['b']='B'

print d2 == d3

print '\nOrderedDict:'
d4=collections.OrderedDict()
d4['a']='A'
d4['b']='B'
d4['c']='C'

d5=collections.OrderedDict()
d5['c']='C'
d5['a']='A'
d5['b']='B'

print d1==d2

输出:
Regular dictionary:
True

OrderedDict:
False

再看几个例子:

dd = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}
#按key排序
kd = collections.OrderedDict(sorted(dd.items(), key=lambda t: t[0]))
print kd
#按照value排序
vd = collections.OrderedDict(sorted(dd.items(),key=lambda t:t[1]))
print vd

#输出
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pycharm 使用心得(四)显示行号
Jun 05 Python
python下载文件时显示下载进度的方法
Apr 02 Python
python用装饰器自动注册Tornado路由详解
Feb 14 Python
Python操作Excel之xlsx文件
Mar 24 Python
老生常谈Python进阶之装饰器
May 11 Python
解决matplotlib库show()方法不显示图片的问题
May 24 Python
Python装饰器模式定义与用法分析
Aug 06 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
Feb 21 Python
Django CSRF跨站请求伪造防护过程解析
Jul 31 Python
Python笔记之facade模式
Nov 20 Python
Python使用jupyter notebook查看ipynb文件过程解析
Jun 02 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
python编写计算器功能
Oct 25 #Python
Python实现快速排序的方法详解
Oct 25 #Python
python实现超市商品销售管理系统
Oct 25 #Python
Python列表元素常见操作简单示例
Oct 25 #Python
python实现超市管理系统(后台管理)
Oct 25 #Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 #Python
python+mysql实现个人论文管理系统
Oct 25 #Python
You might like
Apache设置虚拟WEB
2006/10/09 PHP
一个显示天气预报的程序
2006/10/09 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
基于PHP读取csv文件内容的详解
2013/06/18 PHP
PHP防盗链代码实例
2014/08/27 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
python使用邻接矩阵构造图代码示例
2017/11/10 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
flask项目集成swagger的方法
2020/12/09 Python
《走一步再走一步》教学反思
2014/02/15 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
项目合作意向书范本
2014/04/01 职场文书
社区工作者演讲稿
2014/05/23 职场文书
大雁塔英文导游词
2015/02/10 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android