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中使用元类的教程
Apr 28 Python
python 内置函数filter
Jun 01 Python
使用Python & Flask 实现RESTful Web API的实例
Sep 19 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 Python
django框架auth模块用法实例详解
Dec 10 Python
TensorFlow:将ckpt文件固化成pb文件教程
Feb 11 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 Python
Python %r和%s区别代码实例解析
Apr 03 Python
django 模型字段设置默认值代码
Jul 15 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
Python调用系统命令os.system()和os.popen()的实现
Dec 31 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
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
jQuery实现简单聊天室
2020/02/08 jQuery
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
Python实现二分法算法实例
2015/02/02 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
python下载库的步骤方法
2019/10/12 Python
Python如何安装第三方模块
2020/05/28 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
轻松制作精彩视频:Animoto
2018/09/19 全球购物
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
技校学生个人职业生涯规划范文
2014/03/03 职场文书
三严三实对照检查材料
2014/09/22 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
新生入学欢迎词
2015/01/26 职场文书
《叶问2》观后感
2015/06/15 职场文书
python如何查找列表中元素的位置
2022/05/30 Python
Go gorilla/sessions库安装使用
2022/08/14 Golang