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