python中OrderedDict的使用方法详解

发布时间 - 2026-01-11 00:59:46    点击率:

很多人认为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  # ordereddict  # python3  # ordered  # dict  # Python的collections模块中的OrderedDict有序字典  # python 中的collections.OrderedDict() 用法  # python模块简介之有序字典(OrderedDict)  # Python OrderedDict字典排序方法详解  # Python标准库使用OrderedDict类的实例讲解  # Python OrderedDict的使用案例解析  # 一文详细介绍Python中的OrderedDict对象  # 几个  # 也会  # 有个  # 子类  # 很多人  # 它是  # 英文  # 可以看到  # 再看  # 带了  # 大家多多  # 存了  # 实现了  # class  # dictionary  # py  # pre  # print  # import  # brush 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel如何处理表单验证?(Requests代码示例)  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  成都网站制作公司哪家好,四川省职工服务网是做什么用?  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何在IIS服务器上快速部署高效网站?  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  Laravel怎么判断请求类型_Laravel Request isMethod用法  Laravel Docker环境搭建教程_Laravel Sail使用指南  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  Mybatis 中的insertOrUpdate操作  JS实现鼠标移上去显示图片或微信二维码  实例解析angularjs的filter过滤器  香港服务器租用每月最低只需15元?  浅述节点的创建及常见功能的实现  如何在新浪SAE免费搭建个人博客?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  LinuxShell函数封装方法_脚本复用设计思路【教程】  网站页面设计需要考虑到这些问题  Python3.6正式版新特性预览  如何快速查询网址的建站时间与历史轨迹?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  MySQL查询结果复制到新表的方法(更新、插入)  在centOS 7安装mysql 5.7的详细教程  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  5种Android数据存储方式汇总  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Laravel如何使用Gate和Policy进行授权?(权限控制)  图册素材网站设计制作软件,图册的导出方式有几种?  Swift开发中switch语句值绑定模式  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何在自有机房高效搭建专业网站?  Laravel如何使用Vite进行前端资源打包?(配置示例)  Linux系统命令中tree命令详解  bing浏览器学术搜索入口_bing学术文献检索地址  Linux后台任务运行方法_nohup与&使用技巧【技巧】  jQuery 常见小例汇总  Laravel怎么连接多个数据库_Laravel多数据库连接配置  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  北京企业网站设计制作公司,北京铁路集团官方网站?  jQuery中的100个技巧汇总  Laravel怎么实现验证码(Captcha)功能  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  Laravel API资源类怎么用_Laravel API Resource数据转换  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】