Pythonには、キーと値を組み合わせて扱う「dictionary(辞書)」というものが存在します。
今回の記事では、「辞書とは何か?」という基礎的な部分から具体的な使用方法についてまで、詳しく解説していきたいと思います。
Pythonの辞書型とは?
辞書(dictionary)型とは、任意のキー(Key)と値(Value)を1つのペアとして格納することができるデータ構造のことを言います。
辞書の中に用意されたデータを格納するための場所を要素と呼び、1つの要素につき1つのペアが格納されます。要素は1つの辞書内に複数保持することができます。
【辞書型の例】
{"りんご": "300円", "みかん": "180円", "もも": "360円"}
このように、「キー:値」という形式でデータを格納します。
上記の例では全て文字列でキーを指定していますが、数値なども同様にキーに指定することができます。ただし、リストや辞書は使用することができません。
また、キーは一意である(同じものが2つ存在しない)必要があるため、同一辞書内で重複させることはできません。
辞書型の基本的な使い方
まずは、辞書型の基本的な使い方について、順に説明していきたいと思います。
辞書型のオブジェクトを作成する
辞書型オブジェクトを作成する際は、以下のようにコードを記述します。
【サンプルコード】
sampleDic = {"りんご": "300円", "みかん": "180円", "もも": "360円"}
print(sampleDic)
【実行結果】
{'りんご': '300円', 'みかん': '180円', 'もも': '360円'}
要素の登録を別で行いたい場合は、「{}」のみを記述して空の辞書を作成することもできます。
【サンプルコード】
sampleDic = {}
print(sampleDic)
【実行結果】
{}
辞書の要素を参照する
辞書型オブジェクト内の要素を参照する場合は、以下のようにキーを指定して各要素にアクセスします。
【サンプルコード】
sampleDic = {"りんご": "300円", "みかん": "180円", "もも": "360円"}
print(sampleDic["りんご"])
print(sampleDic["みかん"])
print(sampleDic["もも"])
【実行結果】
300円
180円
360円
辞書名の後ろに「[]」を付け、その中にキーを記述することで、対応する値を参照することができます。
存在しないキーを指定してしまうとエラーが発生するので、注意が必要です。
辞書型の応用的な使い方
続いて、辞書型オブジェクトで使用できる様々な機能について紹介していきます。
辞書の要素を検索する
in演算子、もしくはnot in演算子と組み合わせることで、辞書の中に特定の要素が存在するか否かを検索することができます。
まず、キーの有無を確認したい場合には、作成した辞書型オブジェクトに対して演算子を使用します。
in演算子は指定のキーが存在する場合にTrueを返し、not in演算子は存在しない場合にTrueを返します。
【サンプルコード】
sampleDic = {"りんご": "300円", "みかん": "180円", "もも": "360円"}
print("りんご" in sampleDic)
print("ぶどう" not in sampleDic)
【実行結果】
True
True
辞書オブジェクトそのものではなく、keys()メソッドを使っても同じ結果が得られます。
キーに対する確認であることを明示的に表したい時など、状況に合わせて使い分けるといいでしょう。
【サンプルコード】
sampleDic = {"りんご": "300円", "みかん": "180円", "もも": "360円"}
print("りんご" in sampleDic.keys())
print("ぶどう" not in sampleDic.keys())
【実行結果】
True
True
値の有無を検索したい場合は、valuesメソッドを使用します。
演算子ごとの検索条件は、キーを判定する時と同様です。
【サンプルコード】
sampleDic = {"りんご": "300円", "みかん": "180円", "もも": "360円"}
print("300円" in sampleDic.values())
print("100円" not in sampleDic.values())
【実行結果】
True
True
辞書に要素を追加する
作成済みの辞書に新たにキーと値を追加する方法について解説していきます。
まだ辞書にないキーを指定して値を代入すると、辞書に新しく要素を追加することができます。
【サンプルコード】
sampleDic = {"りんご": "300円", "みかん": "180円", "もも": "360円"}
sampleDic["ぶどう"] = "450円"
print(sampleDic)
【実行結果】
{'りんご': '300円', 'みかん': '180円', 'もも': '360円', 'ぶどう': '450円'}
この方法で値を追加する場合、既にキーが存在していると値が更新されてしまいます。
キーが未使用の場合にのみ処理を行いたい場合は、setdefault()メソッドを使用するといいでしょう。
【サンプルコード】
sampleDic = {"りんご": "300円", "みかん": "180円", "もも": "360円"}
sampleDic.setdefault("ぶどう", "450円")
sampleDic.setdefault("りんご", "200円")
print(sampleDic)
【実行結果】
{'りんご': '300円', 'みかん': '180円', 'もも': '360円', 'ぶどう': '450円'}
既に存在する「りんご」のキーは更新されず、「ぶどう」のキーのみが新しく追加されたことが分かると思います。
上記で紹介した方法は1つの要素のみを追加する方法でしたが、複数の要素を同時に追加する方法も存在します。
辞書のupdate()メソッドを使用すると、値をまとめて追加することができます。メソッドの引数には、他の辞書オブジェクトを渡すこともできます。
【サンプルコード】
sampleDic = {"りんご": "300円", "みかん": "180円", "もも": "360円"}
addDic = {"もも": "360円", "ぶどう": "450円"}
sampleDic.update(りんご = "300円", みかん = "180円")
sampleDic.update(addDic)
print(sampleDic)
【実行結果】
{'りんご': '300円', 'みかん': '180円', 'もも': '360円', 'ぶどう': '450円'}
辞書の要素を削除する
辞書の要素を削除するには、popメソッド、もしくはclearメソッドを使っていきます。
まずは、popメソッドを使った削除方法について見ていきましょう。
popメソッドは、指定したキーの要素を削除し、そのキーとペアになっていた値を返すメソッドです。
以下にサンプルコードを用意しました。
【サンプルコード】
sampleDic = {"りんご": "300円", "みかん": "180円", "もも": "360円"}
delVal = sampleDic.pop("りんご")
print(sampleDic)
print(delVal)
【実行結果】
{'みかん': '180円', 'もも': '360円'}
300円
指定したキーの要素が削除され、その値が変数に代入されているのが分かると思います。
個別に要素を削除するのではなく、全ての要素をまとめて削除したい場合には、clearメソッドを使用します。
【サンプルコード】
sampleDic = {"りんご": "300円", "みかん": "180円", "もも": "360円"}
sampleDic.clear()
print(sampleDic)
【実行結果】
{}
辞書の要素をソートする
辞書の要素をソートする場合は、sortedメソッドを使用します。
【サンプルコード】
sampleDic = {"りんご": "300円", "みかん": "180円", "もも": "360円"}
sortedDict = sorted(sampleDic.items())
print(sortedDict)
【実行結果】
[('みかん', '180円'), ('もも', '360円'), ('りんご', '300円')]
戻り値は辞書型ではなくリスト型で返されるため、その点は注意が必要です。
まとめ
今回は、Pythonでの辞書型の使い方について解説してきました。
複数の値をまとめて扱うことのできる辞書型は便利なので、ぜひ使い方をマスターしてみましょう!
Pythonの勉強方法は?
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、Pythonに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。