Python 有序字典

有序字典-OrderedDict简介

示例

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

import collectionsprint '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, vprint 'OrderedDict:'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免费学习笔记(深入)”;

-> python test7.pyRegular dictionary:a Ac Cb Be Ed DOrderedDict:a Ab Bc Cd De E

登录后复制

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

相等性

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

import collectionsprint '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 == d2print '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免费学习笔记(深入)”;

-> python test7.pydict       : TrueOrderedDict: False

登录后复制

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

注意

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2282786.html

(0)
上一篇 2025年2月27日 19:41:40
下一篇 2025年2月18日 01:07:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论