Python OrderedDict使用


Pythonの辞書オブジェクトは、「キー:値」でデータにアクセスできます.OrderedDictは、辞書オブジェクト内の要素のソートを実現するサブクラスです.たとえば、次の2つの方法の違いを比較します.
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 '
OrderedDict:' 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の3つの要素が保存されているが、OrderedDictを使用すると、要素が入った順にソートされることがわかる.ソートが行われているため、OrderedDictオブジェクトの辞書オブジェクトは、その順序が異なる場合、Pythonも次のコードのような2つの異なるオブジェクトとして扱われます.
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 '
OrderedDict:' 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

変換元:http://www.onepub.net/2011/08/19/python-ordereddict%E4%BD%BF%E7%94%A8/