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实现的守护进程(Daemon)用法实例
Jun 02 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
python获取文件真实链接的方法,针对于302返回码
May 14 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
Python 单元测试(unittest)的使用小结
Nov 14 Python
pycham查看程序执行的时间方法
Nov 29 Python
python 产生token及token验证的方法
Dec 26 Python
Python多线程获取返回值代码实例
Feb 17 Python
Python3如何判断三角形的类型
Apr 12 Python
python“静态”变量、实例变量与本地变量的声明示例
Nov 13 Python
python爬虫破解字体加密案例详解
Mar 02 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 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
laravel返回统一格式错误码问题
2019/11/04 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
Vue $attrs & inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
2018/06/11 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
python实现Virginia无密钥解密
2019/03/20 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
python3 logging日志封装实例
2020/04/08 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
质检部部长职责
2013/12/16 职场文书
新学期决心书
2014/03/11 职场文书
学校师德承诺书
2014/05/23 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
办公室禁烟通知
2015/04/23 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js
vue中 this.$set的使用详解
2021/11/17 Vue.js
各种货币符号快捷输入
2022/02/17 杂记