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 相关文章推荐
python解析html开发库pyquery使用方法
Feb 07 Python
在Python的Flask框架中实现单元测试的教程
Apr 20 Python
实例解析Python中的__new__特殊方法
Jun 02 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
Jul 25 Python
python顺序的读取文件夹下名称有序的文件方法
Jul 11 Python
基于Python的PIL库学习详解
May 10 Python
简单介绍python封装的基本知识
Aug 10 Python
python+pygame实现坦克大战
Sep 10 Python
Python3 集合set入门基础
Feb 10 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 Python
python中@contextmanager实例用法
Feb 07 Python
Pytorch distributed 多卡并行载入模型操作
Jun 05 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
基于mysql的bbs设计(一)
2006/10/09 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
2013/02/04 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
Django框架使用富文本编辑器Uedit的方法分析
2018/07/31 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
Python如何测试stdout输出
2020/08/10 Python
Python常用断言函数实例汇总
2020/11/30 Python
美国在线家装零售商:Build.com
2016/09/02 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
出纳岗位职责范本
2013/12/01 职场文书
大学生表扬信范文
2014/01/09 职场文书
访谈节目策划方案
2014/05/15 职场文书
奉献家乡演讲稿
2014/09/16 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
python周期任务调度工具Schedule使用详解
2021/11/23 Python