python模块简介之有序字典(OrderedDict)

作者:linuxidc 时间:2023-12-14 07:46:46 

有序字典-OrderedDict简介

示例

有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的。参见下面的例子:


import collections

print 'Regular dictionary:'
d = {}
d['a'] = 'A'
d['b'] = 'B'
d['c'] = 'C'
d['d'] = 'D'
d['e'] = 'E'

for k, v in d.items():
 print k, v

print '\nOrderedDict:'
d = collections.OrderedDict()
d['a'] = 'A'
d['b'] = 'B'
d['c'] = 'C'
d['d'] = 'D'
d['e'] = 'E'

for k, v in d.items():
 print k, v

运行结果如下:


-> python test7.py
Regular dictionary:
a A
c C
b B
e E
d D

OrderedDict:
a A
b B
c C
d D
e E

可以看到通常字典不是以插入顺序遍历的。

相等性

判断两个有序字段是否相等(==)需要考虑元素插入的顺序是否相等


import collections

print 'dict    :',
d1 = {}
d1['a'] = 'A'
d1['b'] = 'B'
d1['c'] = 'C'
d1['d'] = 'D'
d1['e'] = 'E'

d2 = {}
d2['e'] = 'E'
d2['d'] = 'D'
d2['c'] = 'C'
d2['b'] = 'B'
d2['a'] = 'A'

print d1 == d2

print 'OrderedDict:',

d1 = collections.OrderedDict()
d1['a'] = 'A'
d1['b'] = 'B'
d1['c'] = 'C'
d1['d'] = 'D'
d1['e'] = 'E'

d2 = collections.OrderedDict()
d2['e'] = 'E'
d2['d'] = 'D'
d2['c'] = 'C'
d2['b'] = 'B'
d2['a'] = 'A'

print d1 == d2

运行结果如下:


-> python test7.py
dict    : True
OrderedDict: False

而当判断一个有序字典和其它普通字典是否相等只需判断内容是否相等。

注意

OrderedDict 的构造器或者 update() 方法虽然接受关键字参数,但因为python的函数调用会使用无序的字典来传递参数,所以关键字参数的顺序会丢失,所以创造出来的有序字典不能保证其顺序。

参考资料

https://docs.python.org/2/library/collections.html#collections.OrderedDict
https://pymotw.com/2/collections/ordereddict.html

来源:http://www.linuxidc.com/Linux/2016-12/137771.htm

标签:python,有序字典,OrderedDict
0
投稿

猜你喜欢

  • Python如何使用argparse模块处理命令行参数

    2023-02-03 18:10:20
  • 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结

    2012-08-21 10:22:21
  • 使用Python脚本将绝对url替换为相对url的教程

    2022-09-03 09:36:39
  • python安装scipy的方法步骤

    2022-02-27 21:10:45
  • Tornado 多进程实现分析详解

    2022-06-13 20:51:56
  • python中关于py文件之间相互import的问题及解决方法

    2021-08-29 00:29:33
  • 老生常谈CSS网页布局的意义与副作用

    2008-09-12 12:31:00
  • python代码 FTP备份交换机配置脚本实例解析

    2023-05-08 22:47:25
  • MySQL中 LBCC 和 MVCC 的理解及常见问题示例

    2024-01-23 18:51:01
  • js取得当前鼠标的X,Y坐标

    2007-09-27 19:52:00
  • python中pathlib模块的基本用法与总结

    2023-12-11 15:54:17
  • 利用Go语言快速实现一个极简任务调度系统

    2023-08-28 14:26:15
  • Perl中chomp和chop的区别介绍

    2023-12-03 18:09:43
  • WEB打印分页类(JS)

    2008-01-22 14:02:00
  • GO语言基本数据类型总结

    2024-02-06 08:14:27
  • CSS 那些事儿

    2008-12-02 18:19:00
  • 微信小程序实现搜索框功能

    2024-04-16 10:31:05
  • 使用SQL Server 2008管理非结构化数据

    2009-01-08 15:28:00
  • 详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)

    2023-09-06 14:34:52
  • Python cookbook(数据结构与算法)实现查找两个字典相同点的方法

    2022-07-20 22:09:46
  • asp之家 网络编程 m.aspxhome.com