Pythonで順序付きの辞書を作成する~OrderedDict~

記事内に広告が含まれています。

Pythonで通常辞書型の変数を作成するには「dict」を利用しますが、dictは挿入された順序を保証しません。

辞書(dict)型で挿入した順序を保持したい場合には「OrderedDict」を使うようにします。

挿入順序を保持するOrderedDict

OrderedDictモジュールは標準モジュールに含まれているので、新たに何かをインストールする必要はありません。

利用する際は「OrderedDict」モジュールをインポートするだけで利用できます。

from collections import OrderedDict

OrderedDictの使い方

OrderedDictは通常の辞書(dict)型のサブクラスになっているので同様に使うことができます。

from collections import OrderedDict
import pprint

#それぞれの辞書型を確保
di1 = dict()
di2 = dict()
od1 = OrderedDict()
od2 = OrderedDict()

#順序を考慮して値設定
di1[ "0" ] = 0
di1[ "1" ] = 1
di1[ "2" ] = 2

od1[ "0" ] = 0
od1[ "1" ] = 1
od1[ "2" ] = 2

#順序が変わるように考慮して値設定
di2[ "0" ] = 0
di2[ "2" ] = 2
di2[ "1" ] = 1

od2[ "0" ] = 0
od2[ "2" ] = 2
od2[ "1" ] = 1

#結果表示
pprint.pprint( di1 )
pprint.pprint( di2 )
pprint.pprint( od1 )
pprint.pprint( od2 )

上記の実行結果は

{'0': 0, '1': 1, '2': 2}
{'0': 0, '1': 1, '2': 2}
OrderedDict([('0', 0), ('1', 1), ('2', 2)])
OrderedDict([('0', 0), ('2', 2), ('1', 1)])

となりdict型はどちらも順序がソートされ同じ出力結果になっているのに対し、OrderedDict型の方は、挿入した順序を保持し、その順序で出力されています。

まとめ

Pythonで挿入順序も保持してデータを管理したいのであればOrderedDictを利用するようにしましょう。

以上、Pythonで順序付きの辞書を作成する~OrderedDict~でした。

タイトルとURLをコピーしました