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 相关文章推荐
pymongo实现多结果进行多列排序的方法
May 16 Python
在win和Linux系统中python命令行运行的不同
Jul 03 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
详解python的argpare和click模块小结
Mar 31 Python
python async with和async for的使用
Jun 20 Python
Pandas库之DataFrame使用的学习笔记
Jun 21 Python
关于Python内存分配时的小秘密分享
Sep 05 Python
Python箱型图处理离群点的例子
Dec 09 Python
Python实现点云投影到平面显示
Jan 18 Python
python类共享变量操作
Sep 03 Python
Python Socket编程详解
Apr 25 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
77A一级收信机修理记
2021/03/02 无线电
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
针对PHP开发安全问题的相关总结
2019/03/22 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
创建与框架无关的JavaScript插件
2020/12/01 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
easy_install python包安装管理工具介绍
2013/02/10 Python
python定时关机小脚本
2018/06/20 Python
如何用Python合并lmdb文件
2018/07/02 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
python mysql断开重连的实现方法
2019/07/26 Python
使用python实现kNN分类算法
2019/10/16 Python
python实现在一个画布上画多个子图
2020/01/19 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
大学生预备党员自我评价分享
2013/11/16 职场文书
珍惜水资源建议书
2014/03/12 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
颐和园的导游词
2015/01/30 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
运动会加油稿50字
2015/07/21 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL