2023.12.04
【初心者向け】Python辞書の基本的な使い方と注意点|リスト・タプル・集合との違いも解説
Python辞書は、使いこなせるようになれば便利ですが、慣れるにはある程度の知識とスキルが必要です。
実際に、Python辞書でつまずいているエンジニアは少なくありません。Pythonの勉強をスムーズにするためにも、本記事ではPython辞書の使い方や注意点を解説します。
この記事でわかること
- Python辞書について
- Python辞書の使い方
- Python辞書の注意点
目次
Pythonの「辞書」とは
Pythonの辞書(ディクショナリ)とは、実際にある電子辞書や英和辞典のように、キーワードを用いて検索することで、そのキーワードに関する情報を引っ張り出せる機能です。電子辞書で「りんご」と検索すると、りんごに関する詳細情報を確認できます。
それと同様に、Pythonの辞書にあるキーワードを入力することで、キーワードに関連した情報を出力できます。たとえば、以下のような情報があったとします。
名前(キー) | 年齢(値) |
---|---|
Tanaka | 20歳 |
Sato | 30歳 |
Yamada | 40歳 |
Pythonの辞書を使えば、名前を入力することで年齢を出力できます。なおPythonの辞書では、上記の表における名前を「キー」、年齢を「値」と呼ぶのが一般的です。これからPythonの辞書を扱う際は、必ず覚えておきましょう。
リスト・タプル・辞書・集合の違い
Pythonにおいて、データ格納、操作、出力できるオブジェクトは辞書だけではありません。リスト、タプル、集合といった種類があります。そこでこの章では、それぞれの違いについて解説します。
リスト
リストも辞書と同じように、複数の要素が格納されているオブジェクトです。コードを書くことで、リストの作成やリスト内の要素を出力できます。たとえば、以下のようなリストがあったとします。
list = [“長男”,”次男”,”三男”,”四男”,”五男”] |
リスト内の要素は[ ]で囲まれており、左から順番に0から始まる連番でインデックスされています。Pythonのリストでは、インデックスの番号を指定することで該当の情報を引き出せる仕組みです。
たとえば、リストのなかの「三男」を引き出すとします。「三男」は2にインデックスされているので、以下のようにコードを書きます。
list = [“長男”,”次男”,”三男”,”四男”,”五男”] print(list[2]) |
すると「三男」という情報が出力されます。また「五男」を「長女」に変更したい場合は、以下のようにコードを書きます。
list = [“長男”,”次男”,”三男”,”四男”,”五男”] list[4]=”長女” |
すると、リストは「[“長男”,”次男”,”三男”,”四男”,”長女”]」に書き換えられます。
タプル
タプルはリストと同様に、並んだ要素が左からインデックスされているオブジェクトです。インデックス番号を指定すると、該当する要素を出力できます。
リストと違う点は、以下のようにコードを書くときに[ ]で囲わない点と、タプルはイミュータブル(更新不可)であり要素を変更できない点です。
tuple = “大将”,”副将”,”中堅”,”次鋒”,”先鋒” |
仮に「先鋒」を「三将」に変更するために、以下のようなコードを書きます。
tuple = “大将”,”副将”,”中堅”,”次鋒”,”先鋒” tuple[4]=”三将” |
すると「Error」が表示され、タプル内の要素も変更されずそのままになります。
辞書
リストやタプルはインデックス番号を用いて検索を行っていましたが、辞書はキーを用いて検索を行います。波かっこ{ }で囲われており、キーと値は「:」で区切られ、要素同士は「,」で区切られるのが決まりです。
dictionary = {“Tanaka”:20, “Sato”:30, “Yamada”:40} |
なお、要素の変更や削除も可能です。
集合
集合は辞書と同様にキーを用いて検索を行います。しかし値を持っていないため、出力されるのはキーだけです。
また、オブジェクト内に同じ要素があった際、重複されずに出力されるのも特徴です。たとえば、以下のような集合があったとします。
set = {1,1,2,3,3,4,4,5} |
こちらを出力すると、以下のようになります。
set = {1,2,3,4,5} |
このように、オブジェクト内に同じ要素が複数個あってもひとつしか出力されないのが集合です。
Python辞書を用いるメリット
Python辞書を用いるメリットは、キーを用いて検索できる点です。リストやタプルの場合、インデックス番号を用いて検索を行います。したがって、オブジェクト内のどの位置に欲しい要素があるかわからなければ検索できません。
一方、辞書であれば、要素の位置がわからなくてもキーさえ判明していれば検索可能です。こうした特徴から、バグの修正時も効率を上げられるというメリットもあります。
Python辞書の基本的な使い方
この章ではPython辞書の使い方について解説します。以下の操作ごとに分けて解説するので、ぜひ参考にしてください。
- 辞書オブジェクトの作成
- 辞書の要素の参照(アクセス)
- 要素の追加・変更
- 要素の削除
- 要素の検索
辞書オブジェクトの作成
辞書オブジェクトを作成する際は、以下のように記載します。
辞書の名前 = {“キー”:値, “キー”:値, “キー”:値} |
たとえば、次の表の情報をもとに辞書を作成するとします。
名前(キー) | 年齢(値) |
---|---|
Tanaka | 20 |
Sato | 30 |
Yamada | 40 |
この場合、次のようなコードになります。
dictionary = {“Tanaka”:20, “Sato”:30, “Yamada”:40} |
また、キーと値の組み合わせはすべて同じパターンでなくても問題ありません。たとえば、以下のような辞書でも正常に機能します。
dictionary = {“Tanaka”:20, “Sato”:30, “Yamada”:40,”Yasumura”:”年齢不詳”} |
辞書の要素の参照(アクセス)
辞書のなかにある要素を検索する際は、以下のコードを書きます。
print(辞書の名前[“キー”]) |
たとえば、以下の辞書から「Soto」と「Yasumura」の年齢を検索するとします。
dictionary = {“Tanaka”:20, “Sato”:30, “Yamada”:40,”Yasumura”:”年齢不詳”} |
その場合は以下のようなコードを書きましょう。
dictionary = {“Tanaka”:20, “Sato”:30, “Yamada”:40,”Yasumura”:”年齢不詳”} print(dictionary[“Sato”]) print(dictionary[“Yasumura”]) |
実行すると、以下のような結果を得られます。
30 年齢不詳 |
要素の追加・変更
要素を追加するためのコードは以下のとおりです。
辞書の名前[“追加するキー”] = 値 |
たとえば、以下の辞書に新しい要素を追加するとします。
dictionary = {“Tanaka”:20, “Sato”:30, “Yamada”:40,”Yasumura”:”年齢不詳”} |
その場合は、以下のコードを書きましょう。
dictionary[“Mori”] = 50 |
また、要素の値を変更するためのコードは以下のとおりです。
辞書の名前[“値を変更するキー”] = 変更後の値 |
たとえば、以下の辞書の「年齢不詳」を「50」に変更するとします。
dictionary = {“Tanaka”:20, “Sato”:30, “Yamada”:40,”Yasumura”:”年齢不詳”} |
その場合は、以下のコードを書きましょう。
dictionary[“Yasumura”] = 50 |
出力すると「年齢不詳」が「50」に変更されます。
要素の削除
辞書内の要素を削除する際は「del」または「pop」「clear」を使いましょう。
「del」「pop」もキーを指定して要素を削除するものですが、シンプルに削除を実行する「del」に対して「pop」は削除と値の取得が行えます。さらに「clear」は辞書のすべての要素を削除します。
たとえば「pop」を用いて以下の辞書の「Sato」を削除するとします。
dictionary = {“Tanaka”:20, “Sato”:30, “Yamada”:40} |
その場合は、次のようなコードを書きます。
dictionary = {“Tanaka”:20, “Sato”:30, “Yamada”:40} dictionary.pop(“Sato”) |
これで辞書のなかから「Sato」を削除できます。また「Sato」の値である30が返されます。
続いて「clear」を用いて、すべての要素を削除する方法です。たとえば、先ほどの辞書のなかにある要素をすべて削除する場合は、以下のようなコードを書きます。
dictionary = {“Tanaka”:20, “Sato”:30, “Yamada”:40} dictionary.clear() |
実行することで、すべての要素を削除できます。
要素の検索
この節では、要素の検索について解説します。まずは、辞書内にある特定のキーを検索する方法です。たとえば、以下の辞書のなかから「脂質」というキーを検索するとします。
dictionary = {“タンパク質”:20, “脂質”:30, “炭水化物”:50} |
その場合は、以下のコードを書きましょう。
dictionary = {“タンパク質”:20, “脂質”:30, “炭水化物”:50} if “脂質” in dictionary.keys(): print(“あり”) |
辞書のなかに「脂質」というキーがある場合「あり」と出力されます。
続いて、辞書内にある特定の値を検索する方法です。たとえば、以下の辞書から「犬」という値を検索するとします。
dictionary = {“ペルシャ”:”猫”, “チワワ”:”犬”, “アジ”:”魚”} |
その場合は、次のようなコードを書きましょう。
dictionary = {“ペルシャ”:”猫”, “チワワ”:”犬”, “アジ”:”魚”} if “犬” in dictionary.values(): print(“あり”) |
辞書のなかに「犬」という値があれば「あり」と出力されます。
決められた回数繰り返し処理を行う「for文」を用いることで、辞書のなかにある要素を取り出すことも可能です。こちらの記事では、Pythonのループ処理であるfor文について解説しています。
Python辞書を使用する際の注意点
Python辞書を使用する際の注意点は以下の3点です。
- キーの重複指定に気をつける
- キーは変更不可能な型
- 順番は保持されない
キーの重複指定に気をつける
ひとつの辞書につき同じキーはひとつまでです。たとえば、以下のような「Sushi」というキーが2つある辞書を出力するとします。
dictionary = {“Sushi”:100, “Tempura”:300, “Ramen”:500, “Sushi”:200} |
重複したキーはあとから書いた方が反映されるため、以下のような辞書になります。
dictionary = {“Sushi”:200, “Tempura”:300, “Ramen”:500} |
新たにキーを追加する際も、既存のキーと重複していないか確認しましょう。
キーは変更不可能な型
キーは変更不可能な型でないといけません。そのため、変更可能な辞書やリストをキーとして設定することは不可能です。一方で値には、辞書やリストを設定できます。
順番は保持されない
バージョン3.6以前のPythonの場合、要素の出力される順番は、辞書の順番通りとは限りません。たとえば、以下のような辞書を出力するとします。
dictionary = {“あああ”:1, “いいい”:2, “ううう”:3} |
すると、以下のような出力結果になる可能性があります。
{“あああ”:1 ,“ううう”:3“ ,いいい”:2} |
まとめ
Python辞書はキーを使って、値を検索できる機能です。リストやタプルとは異なり、欲しい要素を直感的に検索できます。
辞書のなかの要素はキーと値のセットになっており「:」で区切るのが基本です。キーは変更不可能な型である必要がありますが、値は変更可能な型でも問題ありません。辞書を使って、Pythonでの作業を効率よく進めましょう。
なお、テクノデジタルでは、辞書をはじめとしたPythonに関する疑問点や悩みに対してアドバイスをさせていただいております。現在、Pythonに関してお悩みの方はぜひお問い合わせください。
投稿者
-
システム開発、Webサイト制作、ECサイトの構築・運用、デジタルトランスフォーメーション(DX)など、デジタルビジネスに関わる多岐の領域において、最新のトレンド情報や実践的なノウハウを発信してまいります。
新着情報
同じカテゴリの記事
新着記事
人気の記事