Python OrderedDict的使用案例解析

 更新时间:2019年10月25日 14:19:49   作者:北京流浪儿  
这篇文章主要介绍了Python OrderedDict的使用案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了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 IO多路复用之epoll详解

    python IO多路复用之epoll详解

    这篇文章主要为大家详细介绍了python IO多路复用之epoll,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Python中引用传参四种方式介绍

    Python中引用传参四种方式介绍

    大家好,本篇文章主要讲的是Python中引用传参四种方式介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2021-12-12
  • 在Python中表示一个对象的方法

    在Python中表示一个对象的方法

    这篇文章主要介绍了在Python中表示一个对象的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • 详解Python如何实现输出颜色字体到终端界面

    详解Python如何实现输出颜色字体到终端界面

    在终端中,输出的字体总是单一颜色的,黑底白字。但是在一些场景并不能很好的满足输出的需求。本文为大家介绍了Python如何实现输出颜色字体到终端界面中,需要的可以参考一下
    2022-12-12
  • python使用 zip 同时迭代多个序列示例

    python使用 zip 同时迭代多个序列示例

    这篇文章主要介绍了python使用 zip 同时迭代多个序列,结合实例形式分析了Python使用zip遍历迭代长度相等与不等的序列相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • 详解Python中的正则表达式的用法

    详解Python中的正则表达式的用法

    这篇文章主要介绍了详解Python中的正则表达式的用法,正则表达式在各个编程语言的学习当中都是基础知识,文中给出了Python2代码的示例,需要的朋友可以参考下
    2015-04-04
  • 一行Python3代码实现解析地址信息

    一行Python3代码实现解析地址信息

    在日常数据处理的过程中,有时候拿到手的是完整的地址信息,如果需要从地址信息中解析出相应的各级行政单元名称,方式有很多,而今天要介绍的方式只需要一行代码即可快速实现,快跟随小编一起学习一下吧
    2022-05-05
  • 使用OpenCV实现逐帧获取视频图片

    使用OpenCV实现逐帧获取视频图片

    这篇文章主要为大家详细介绍了如何使用OpenCV实现逐帧获取视频中的图片用来标注,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • Pytorch实现网络部分层的固定不进行回传更新问题及思路详解

    Pytorch实现网络部分层的固定不进行回传更新问题及思路详解

    这篇文章主要介绍了Pytorch实现网络部分层的固定不进行回传更新,实现思路就是利用tensor的requires_grad,每一个tensor都有自己的requires_grad成员,值只能为True和False,具体内容详情跟随小编一起看看吧
    2021-08-08
  • 删除PyCharm解释器的方法步骤

    删除PyCharm解释器的方法步骤

    这篇文章主要给大家介绍了关于删除PyCharm解释器的方法步骤,PyCharm解释器是指在PyCharm集成开发环境中用于运行和调试Python代码的解释器,需要的朋友可以参考下
    2023-09-09

最新评论