mport collections
print 'Regular dictionary:'
d={}
d['a']='A'
d['b']='B'
d['c']='C'
for k,v in d.items():
print k,v
print '\nOrderedDict:'
d=collections.OrderedDict()
d['a']='A'
d['b']='B'
d['c']='C'
for k,v in d.items():
print k,v
輸出結果如下:
Regular dictionary:
a A
c C
b B
OrderedDict:
a A
b B
c C
可以看到,同樣是保存了ABC三個元素,但是使用OrderedDict會根據放入元素的先後順序進行排序。由於進行了排序,所以OrderedDict對象的字典對象,如果其順序不同那麽Python也會把他們當做是兩個不同的對象,比如下面的代碼:
import collections
print 'Regular dictionary:'
d1={}
d1['a']='A'
d1['b']='B'
d1['c']='C'
d2={}
d2['c']='C'
d2['a']='A'
d2['b']='B'
print d1==d2
print '\nOrderedDict:'
d1=collections.OrderedDict()
d1['a']='A'
d1['b']='B'
d1['c']='C'
d2=collections.OrderedDict()
d2['c']='C'
d2['a']='A'
d2['b']='B'
print d1==d2
其輸出結果為:
Regular dictionary:
True
OrderedDict:
False