はじめてのPython!順序付き辞書(OrderedDict)とは?使い方を紹介

Dictionaryはキーと紐づく値を設定してデータを作るのに便利ですが、さらに便利な使い方ができる辞書型としてOrderedDictがあります。

「辞書型(Dictionary)の使い方をおさらいしたい」
「順序付け辞書(OrderedDict)」の使い方を知りたい」

といった方に向けてこの記事では以下の内容を解説していきます!

【基礎】Dictionaryとは
【基礎】OrderedDictとは
【基礎】OrderedDictの使い方
【発展】OrderedDictの注意点

なお、Pythonの記事については、こちらにまとめています。

Dictionaryとは

順序付き辞書であるOrderedDictの解説に入る前に、辞書型(Dictionary)についておさらいしておきましょう。

辞書(dictionary)型とは、「カギカッコ{}」の中にkeyとvalueからなるデータが含まれるオブジェクトのことを指します。

辞書型は以下のようにkeyとvalueを記述します。

このように、辞書型のオブジェクトは要素にkeyと紐づくvalueをコロンで区切ったペアとなります。

それぞれのペアはカンマで区切ります。

辞書型についてもっと知っておきたい方は以下の記事を参考にしてください!


【なかなかエラーが解決できない…そんな悩みを解決します!】

登録無料で始められるプログラミングスクール「侍テラコヤ」

・回答率100%のQ&A掲示板でエラーを解決!
現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!

侍テラコヤについて詳しく見る

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を使用すれば追加した要素の順番が保持されることがわかりますね。


【なかなかエラーが解決できない…そんな悩みを解決します!】

登録無料で始められるプログラミングスクール「侍テラコヤ」

・回答率100%のQ&A掲示板でエラーを解決!
現役エンジニアとのオンライン相談で悩みを解決!
・50種類以上の教材で複数言語を習得!

侍テラコヤについて詳しく見る

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の使い方を忘れてしまったら、この記事を思い出してくださいね!

プログラミング学習中、
誰かへ相談したいことはありませんか?

SAMURAI TERAKOYA

プログラミングはエラーの連続。作業を進めるなかで誰かに教えてほしい場面は多いですよね。

そんな悩みを解決できるのが、侍テラコヤです。登録無料で始められて、現役エンジニアとオンラインで相談できるほか、回答率100%のQA掲示版でプログラミングに関する悩みを解決します!

気になる方はぜひ詳細をご覧ください。

→侍テラコヤの詳細をみる

Writer

侍テック編集部

株式会社SAMURAI

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI TERAKOYA

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close