Dictionaryはキーと紐づく値を設定してデータを作るのに便利ですが、さらに便利な使い方ができる辞書型としてOrderedDictがあります。
「辞書型(Dictionary)の使い方をおさらいしたい」
「順序付け辞書(OrderedDict)」の使い方を知りたい」
といった方に向けてこの記事では以下の内容を解説していきます!
【基礎】Dictionaryとは
【基礎】OrderedDictとは
【基礎】OrderedDictの使い方
【発展】OrderedDictの注意点
本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
なお、その他のPythonの記事についてはこちらにまとめています。
Dictionaryとは
順序付き辞書であるOrderedDictの解説に入る前に、辞書型(Dictionary)についておさらいしておきましょう。
辞書(dictionary)型とは、「カギカッコ{}」の中にkeyとvalueからなるデータが含まれるオブジェクトのことを指します。
辞書型は以下のようにkeyとvalueを記述します。
このように、辞書型のオブジェクトは要素にkeyと紐づくvalueをコロンで区切ったペアとなります。
それぞれのペアはカンマで区切ります。
辞書型についてもっと知っておきたい方は以下の記事を参考にしてください!
OrderedDictとは
OrderedDictは通常のDictionaryと構造は似ていますが、違いとして設定された要素の順番を保持されます。
Dictionaryは順序を保つことができません。
OrderDictを使用するためにはcollectionsモジュールのOrderDictをインポートする必要があります。
from collections import OrderedDict
次項よりそんなOrderDictの具体的な使い方について見ていきましょう
OrderedDictの使い方
先程と同様の辞書の内容をOrderedDictで定義して値を出力してみましょう。
from collections import OrderedDict dict = OrderedDict() dict['yamada'] = 21 dict['tanaka'] = 18 dict['suzuki'] = 30 for key, val in dict.items(): print(key, val)
実行結果:
yamada 21 tanaka 18 suzuki 30
OrderedDictを使用すれば追加した要素の順番が保持されることがわかりますね。
OrderedDictの注意点
OrderDictの注意点として、要素をまとめて追加した場合は順序を記憶してくれません。
以下のプログラムを実行すると、Dictionaryと同様に順序が保持されません。
from collections import OrderedDict dict = OrderedDict(yamada=21, tanaka=18, suzuki=30) for key, val in dict.items(): print(key, val)
実行結果:
yamada 21 suzuki 30 tanaka 18
そのため、順序付けで辞書を作りたい場合はOrderedDictで「dict[key] = value」のように1つずつ値を追加する必要があります。
- Pythonのバージョン3.6より引数の順序も保持されるようになりました。
- バージョン 3.6 で変更: PEP 468 の受理によって、OrderedDict のコンストラクタと、update() メソッドに渡したキーワード引数の順序は保持されます。/ 詳細はこちら
まとめ
この記事では順序付けで辞書型のオブジェクトを作れるDictionaryについて解説しました。
- Dictionaryとは
- OrderedDictとは
- OrderedDictの使い方
- OrderedDictの注意点
OrderedDictは、辞書の要素の順番を保持したいときに便利な辞書型ですので使い方についてはしっかりと理解しておきましょう。
もし、OrderedDictの使い方を忘れてしまったら、この記事を思い出してくださいね!