python中OrderedDict的使用方法详解

python中OrderedDict的使用方法详解,第1张

概述很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集、集合),里面自带了一个子类

很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集、集合),里面自带了一个子类

OrderedDict,实现了对字典对象中元素的排序。请看下面的实例:

import collectionsprint "Regular dictionary"d={}d['a']='A'd['b']='B'd['c']='C'for k,v in d.items():  print k,vprint "\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 == d3print '\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),('apple',4)])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的python中OrderedDict的使用方法详解全部内容,希望文章能够帮你解决python中OrderedDict的使用方法详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1202244.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存