【python】详解collections模块中OrderedDict的使用

2023-11-01

很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集、集合),里面自带了一个子类OrderedDict,实现了对字典对象中元素的排序。

import collections
print("Regular dictionary")
d={}
d['a']='A'
d['b']='B'
d['c']='C'
d['1'] = '1'
for k,v in d.items():
    print (k,v)

print("\nOrder dictionary")
d1 = collections.OrderedDict()
d1['a'] = 'A'
d1['c'] = 'C'
d1['1'] = '1'
d1['b'] = 'B'
d1['2'] = '2'
for k,v in d1.items():
    print(k,v)
#------------------------------
Regular dictionary
a A
c C
b B
1 1

Order dictionary
a A
c C
1 1
b B
2 2

可以看到,同样是保存了ABC等几个元素,但是使用OrderedDict会根据放入元素的先后顺序进行排序。所以输出的值是排好序的。

  • 接下来可以通过改变传入的顺序来判断是否是同一个dict:
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(d4==d5)
#------------------------------
Regular dictionary
True

OrderedDict:
False

从结果可以看出,如果是普通的字典,即使传入的顺序不一样,但是依然是相同的字典;
如果是orderedDict,传入的顺序不一样,那么得到的字典是不一样的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【python】详解collections模块中OrderedDict的使用 的相关文章

随机推荐

  • 刷脸比手机支付具便利性使用起来放心

    随着人工智能的成熟 更多智能化融入到日常生活中 支付行业在智能的浪潮下有了翻天复地的变化 由传统支付到新型支付 再到人工智能 由传统钱包到手机钱包 由手动数钱到指纹识别 每个迭代周期超乎我们的想象 就支付行业中国已经在全世界领先地位 在很多
  • 用jquery怎样获取input标签中name、type等属性值

    input text attr name input text prop name 也可以使用prop 方法获取属性
  • 路由器相关总结

    一 何为路由器 路由器是指主要负责OSI参考模型中网络层的处理工作 并根据路由表信息在不同网络之间转发IP分组的网络硬件 这里的网络一般是指IP子网 也可以称广播域 二 OSI参考模型与所对应的网络硬件 三 路由器的必要性 在某个组织的内部
  • Xen Server 7.0 一直无法退出维护模式

    起因 非关机后自动进入维护模式无法退出 提示服务器正在使用 查看当前虚拟机列表 7 0 要用 xl 发现没有任何虚拟机 root xenserver xl vm list 尝试强制关闭所有虚拟机 root xenserver xe vm r
  • 0欧姆电阻在电路中的作用

    转载 http bbs eetzone com thread 147 1 1 html 总的来说0欧姆电阻有以下几个功能 在电路中没有任何功能 只是在PCB上为了调试方便或兼容设计等原因 可以做跳线用 如果某段线路不用 直接不贴该电阻即可
  • Spring Boot Dubbo Zookeeper(含ZK安装脚本)

    文章目录 Spring Boot Dubbo Zookeeper 含ZK安装脚本 简介 Dubbo Common Provider Consumer Zookeeper Spring Boot Dubbo Zookeeper 含ZK安装脚本
  • FISCO BCOS简介

    FISCO BCOS是由国内企业主导研发 对外开源 安全可控的企业级金融联盟链底层平台 由金链盟开源工作组协作打造 并于2017年正式对外开源 社区以开源链接多方 截止2020年5月 汇聚了超1000家企业及机构 逾万名社区成员参与共建共治
  • 如何在linux服务器部署pgsql,安全版以及可能出现各种问题解决(保姆级教程)

    文章目录 准备 一 安装 二 配置环境变量 1 切换用户 2 修改配置文件 三 建立数据库 四 设置监听 总结 准备 提示 市面上那些在linux服务器部署pgsql好多都是水货 效果良莠不齐 笔者花了两天时间成功部署了pgsql 记录下方
  • 【华为OD机试真题2023B卷 JAVA&JS】非严格递增连续数字序列

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 非严格递增连续数字序列 知识点字符串 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 输入一个字符串仅包含大小写字母和数字 求字符串中包含的最长的非严格递增连续数字序列
  • gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_wireshark分析(传输层,网络层,链路层)...

    wireshark抓包软件总是友善地帮包分层 1 链路层 Ethernet II协议即以太网协议 以太网帧的格式如下 这里的地址指的是MAC地址 每一个网卡对应唯一的MAC 类型指的是IP ARP CRC效验数据是否异常 在wireshar
  • shell脚本-cp命令复制目录报错cp: omitting directory

    cp 复制目录报错 如下 报错原因 cp命令默认是不能复制目录的 需要加参数 解决办法 使用cp r命令进行复制 递归处理 将指定目录下的所有文件与子目录一并处理 拓展 cp语法 cp 选项 参数 a 此参数的效果和同时指定 dpR 参数相
  • Sina实时股票数据接口大全

    From http blog csdn net ablo zhou article details 4283320 实时股票数据接口大全 股票数据的获取目前有如下两种方法可以获取 1 http javascript接口取数据 2 web s
  • 【R语言】期末考试五道题

    question1 setwd G Rexam20174710426 a lt 2 b lt 0 c lt 1 d lt 7 e lt 4 f lt 7 g lt 1 h lt 0 i lt 4 j lt 2 k lt 6 o lt NA
  • 大一python期末复习综合题

    目录 前言 问题1 阶层函数 问题2 文件读取 问题3 嵌套循环 问题4 求最短路径 问题4 1 路径长度 问题4 2 最短路径 问题4 2 1 列表添加元素 问题4 2 2 返回最短路径 问题5 绘图 问题5 1 绘制城市坐标散点图 问题
  • 面试官:说一下SSO 单点登录和 OAuth2.0 的区别

    您好 我是路人 更多优质文章见个人博客 http itsoku com 一 概述 SSO是Single Sign On的缩写 OAuth是Open Authority的缩写 这两者都是使用令牌的方式来代替用户密码访问应用 流程上来说他们非常
  • ibatis的批量增删改

    1 Ibatis的批量添加
  • Multi-Thread Life

    最近一段时间的工作比较有趣 翻译Datasheet 代码调试和讲解 说白了就是写教程 目前已经写好了串口 LCD的驱动讲解 虽然是裸机驱动 无需与OS打交道 但也算得上是驱动开发了吧 so 放弃了开发一个CE驱动的计划 手头的定时器篇马上就
  • python3使用smtplib发送邮件,带xlsx附件

    一 概述 最近在做一个统计报表 需要发送邮件 并带附件的 在之前的文章中 https www cnblogs com xiao987334176 p 10022026 html 已经实现了发送邮件 但是没有实现发送附件功能 二 正式代码 u
  • Android Treble架构学习

    自Android 8 0以来 Google引入了Treble架构 希望对vendor和system分区进行解耦处理 说句不好听的就是aosp soc odm oem 都分开各搞各的 哈哈 期待实现 system进程不加载vendor共享库
  • 【python】详解collections模块中OrderedDict的使用

    很多人认为python中的字典是无序的 因为它是按照hash来存储的 但是python中有个模块collections 英文 收集 集合 里面自带了一个子类OrderedDict 实现了对字典对象中元素的排序 import collecti