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中操作时间之mktime()方法的使用教程
May 22 Python
Python批量修改文本文件内容的方法
Apr 29 Python
不要用强制方法杀掉python线程
Feb 26 Python
python实现感知器
Dec 19 Python
Selenium鼠标与键盘事件常用操作方法示例
Aug 13 Python
解决Python3 控制台输出InsecureRequestWarning问题
Jul 15 Python
微信公众号token验证失败解决方案
Jul 22 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
python绘制BA无标度网络示例代码
Nov 21 Python
Python数据可视化:幂律分布实例详解
Dec 07 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
May 25 Python
python实现简单的学生管理系统
Feb 22 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 代码优化的42条建议 推荐
2009/09/25 PHP
php 生成随机验证码图片代码
2010/02/08 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
2014/05/28 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
python字符串string的内置方法实例详解
2018/05/14 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
Python提取频域特征知识点浅析
2019/03/04 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
python通过实例讲解反射机制
2019/10/17 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
python 字符串格式化的示例
2020/09/21 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
迪拜航空官方网站:flydubai
2017/04/20 全球购物
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
Unix/Linux开发面试题
2016/08/16 面试题
生物化学研究助理员求职信
2013/10/09 职场文书
小学作文评语大全
2014/04/21 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
PHP正则表达式之RCEService回溯
2022/04/11 PHP