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实现扫描端口示例
Mar 29 Python
Python使用Mechanize模块编写爬虫的要点解析
Mar 31 Python
Python使用SQLite和Excel操作进行数据分析
Jan 20 Python
Python 实现一行输入多个值的方法
Apr 21 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
解决nohup执行python程序log文件写入不及时的问题
Jan 14 Python
Python同步遍历多个列表的示例
Feb 19 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 Python
django连接oracle时setting 配置方法
Aug 29 Python
Django发送邮件功能实例详解
Sep 02 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
如何在Python中妥善使用进度条详解
Apr 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
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
JavaScript 密码强度判断代码
2009/09/05 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
基于jquery创建的一个图片、视频缓冲的效果样式插件
2012/08/28 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
基于jquery实现一个滚动的分步注册向导-附源码
2015/08/26 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
javascript-hashchange事件和历史状态管理实例分析
2020/04/18 Javascript
[00:58]他们到底在电话里听到了什么?
2017/11/21 DOTA
动态创建类实例代码
2009/10/07 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
Python3 操作符重载方法示例
2017/11/23 Python
详解Python 正则表达式模块
2018/11/05 Python
python各层级目录下import方法代码实例
2020/01/20 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
周年庆典主持词
2014/04/02 职场文书
一分钟演讲稿
2014/04/30 职场文书
软件项目实施计划书
2014/05/02 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
离职报告格式
2014/11/04 职场文书
寒假社会实践个人总结
2015/03/06 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
学雷锋感言
2015/08/03 职场文书
信息技术国培研修日志
2015/11/13 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python