Python標準のディクショナリは追加した順番は保持してくれません。keyを指定する場合は問題ありませんが、追加した順序通りに取得したい場合は、PyPIよりordereddict.OrderedDictを入手します。
※これはPython 2.6 以前を対象としています。Python 2.7 以降で追加した順番を保持するディクショナリを使用したい場合は、標準ライブラリであるcollections.OrderedDictを使用してください。
ordereddict.OrderedDict
まずは標準のディクショナリの出力を見てみましょう。
Python 2系
# -*- coding: utf-8 -*- test_dict = {} test_dict['word'] = 'doc' test_dict['excel'] = 'xls' test_dict['access'] = 'mdb' test_dict['powerpoint'] = 'ppt' test_dict['notepad'] = 'txt' test_dict['python'] = 'py' for key in test_dict: print key
何度か実行してみてください。実況環境や実行タイミングによって出力される順番が異なることが確認できます。
word python notepad excel access powerpoint
次はordereddict.OrderedDictを使用してみましょう。下記コマンドを入力しordereddictモジュールをインストールしてください。
※これはpipがインストールされていることを前提としています。インストールしていない場合はpipの使い方とインストールを参照してください。
pip install ordereddict
インストール後は次のように使用することができます。標準ライブラリの方のOrderedDictとはモジュールが異なるので注意しましょう。
Python 2系(2.7を除く)
# -*- coding: utf-8 -*- import ordereddict test_dict = ordereddict.OrderedDict() test_dict['word'] = 'doc' test_dict['excel'] = 'xls' test_dict['access'] = 'mdb' test_dict['powerpoint'] = 'ppt' test_dict['notepad'] = 'txt' test_dict['python'] = 'py' for key in test_dict: print key
word excel access powerpoint notepad python