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进程管理工具supervisor使用实例
Sep 17 Python
在Django的通用视图中处理Context的方法
Jul 21 Python
python基于itchat实现微信群消息同步机器人
Feb 27 Python
Python开发的HTTP库requests详解
Aug 29 Python
怎么使用pipenv管理你的python项目
Mar 12 Python
在Python中使用defaultdict初始化字典以及应用方法
Oct 31 Python
一行Python代码过滤标点符号等特殊字符
Aug 12 Python
python循环嵌套的多种使用方法解析
Nov 29 Python
Python写捕鱼达人的游戏实现
Mar 31 Python
python中spy++的使用超详细教程
Jan 29 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 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
多文件上传的例子
2006/10/09 PHP
PHP系统流量分析的程序
2006/10/09 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
解析php类的注册与自动加载
2013/07/05 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
crontab无法执行php的解决方法
2016/01/25 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
取得传值的函数
2006/10/27 Javascript
javascript新手语法小结
2008/06/15 Javascript
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
详解JavaScript 异步编程
2020/07/13 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
python实现倒计时的示例
2014/02/14 Python
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
python字符串连接的N种方式总结
2014/09/17 Python
Python格式化压缩后的JS文件的方法
2015/03/05 Python
Python 文件管理实例详解
2015/11/10 Python
浅谈python中get pass用法
2019/03/19 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
python3.5的包存放的具体路径
2020/08/16 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
2015年度物流工作总结
2015/04/30 职场文书
升学宴家长致辞
2015/07/27 职场文书