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如何自定义分页视图?(Pagination示例)  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  制作企业网站建设方案,怎样建设一个公司网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  微信小程序 scroll-view组件实现列表页实例代码  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Android仿QQ列表左滑删除操作  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  如何在Windows虚拟主机上快速搭建网站?  个人网站制作流程图片大全,个人网站如何注销?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  如何获取免费开源的自助建站系统源码?  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何为不同团队 ID 动态生成多个独立按钮  如何制作一个表白网站视频,关于勇敢表白的小标题?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  Linux安全能力提升路径_长期防护思维说明【指导】  使用Dockerfile构建java web环境  Laravel怎么调用外部API_Laravel Http Client客户端使用  如何选择可靠的免备案建站服务器?  实例解析Array和String方法  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Laravel如何实现本地化和多语言支持?(i18n教程)  免费视频制作网站,更新又快又好的免费电影网站?  如何快速生成凡客建站的专业级图册?  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  网站制作企业,网站的banner和导航栏是指什么?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  利用 Google AI 进行 YouTube 视频 SEO 描述优化  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  如何在云服务器上快速搭建个人网站?  Laravel如何实现API版本控制_Laravel版本化API设计方案  php结合redis实现高并发下的抢购、秒杀功能的实例  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel如何自定义错误页面(404, 500)?(代码示例)  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  如何在万网ECS上快速搭建专属网站?  b2c电商网站制作流程,b2c水平综合的电商平台?  用yum安装MySQLdb模块的步骤方法  javascript中的数组方法有哪些_如何利用数组方法简化数据处理