python模块简介之有序字典(OrderedDict)
有序字典-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
相关文章
win10子系统python开发环境准备及kenlm和nltk的使用教程
这篇文章主要介绍了win10子系统python开发环境准备及kenlm和nltk的使用教程,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2019-10-10python Bamboolib库加速Pandas数据分析过程详解
这篇文章主要介绍了python Bamboolib库加速Pandas数据分析过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2024-01-01python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
今天小编就为大家分享一篇python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-06-06Python使用OpenCV对彩色图像进行通道分离的项目实践
通道分离是将彩色图像的每个像素分解为三个通道(红、绿、蓝)的过程,本文主要介绍了Python使用OpenCV对彩色图像进行通道分离的项目实践,感兴趣的可以了解一下2023-08-08
最新评论