【初心者向け】Python 辞書型の使い方を理解しよう!

辞書型

辞書型とは

以前、PHPの記事で「連想配列」について扱いましたが、Pythonの辞書型は連想配列のようなものです。辞書型もキーと値を対応させることができます。キーには数字や文字列を指定することができます。次に例を示します。

population = {“dog”:30, “fox”:20, “mouse”:20, “rabbit”:10}

辞書型は、前回扱ったリスト型と異なり、{}で要素を囲みます。各要素は「”key”:value」というようにkeyとそれに対応するvalueを指定します。このようにkeyと対応するvalueを持つのが辞書型の特徴になります。要素が複数ある場合には、カンマで区切って記述します。

辞書型データの参照

辞書型データを参照するには、次のサンプルコードに示すように、辞書名[“key”]のように記述します。Pythonの辞書型では、存在しないkeyを指定するとエラーになりますので、注意してください。

このコードでは、2行目から5行目で各要素のkeyを指定してvalueを取得しています。実行結果から意図した通りに辞書型の要素を取得できていることがわかります。

Pythonコード

In [1]:

population = {“dog”:30, “fox”:20, “mouse”:20, “rabbit”:10}
print(population[“dog”])
print(population[“fox”])
print(population[“mouse”])
print(population[“rabbit”])

実行結果

Jupyter Notebookで実行した結果です。辞書の作成と要素の取得を行なっています。
Jupyter Notebookでの実行結果:辞書型データの参照

辞書型に要素を追加

次のサンプルコードに示すように、辞書型に新しい要素を追加するときには、辞書名[key]=valueというように記述します。このコードの1行目では、先ほど作成した辞書populationにkeyが”cat”でvalueが40の要素を追加しています。実行結果から辞書に要素が追加できていることがわかります。

Pythonコード

In [2]:

population[“cat”] = 40
print(population)

実行結果

Jupyter Notebookで実行した結果です。辞書の要素の追加を行なっています。
Jupyter Notebookでの実行結果:辞書型の要素の追加

辞書型はひとつの辞書内に同じkeyを持つことができません。もし既に存在するkeyのvalueを指定し場合には、valueが更新されます。次にサンプルコードと実行結果を示します。実行結果から辞書populationのvalueが更新されていることがわかります。ちなみに、異なるkeyで同じvalueを持つことは可能です。

Pythonコード

In [3]:

population[“dog”] = 50
print(population)

実行結果

Jupyter Notebookで実行した結果です。辞書の要素の更新を行なっています。
Jupyter Notebookでの実行結果:辞書型の要素の更新

辞書型の要素の検索

辞書内の要素を検索するには、リスト型の時と同じようにin演算子を使って次のように書きます。ここでは辞書内のkeyを検索していることに注意してください。辞書内のkeyを検索した結果、keyが見つかればTrue、見つからなければFalseを返します。この例では辞書populationのkeyを検索して、”dog”と”prairie dog”が存在しているか確認しています。実行結果から検索が正しく行われていることがわかります。

Pythonコード

In [4]:

print(“dog” in population)
print(“prairie dog” in population)

実行結果

Jupyter Notebookで実行した結果です。辞書のkeyの検索を行なっています。
Jupyter Notebookでの実行結果:辞書型のkeyの検索

先ほどの例では辞書内のkeyを検索しました。辞書内のvalueを検索するには、辞書型のvaluesメソッドを使います。このメソッドは、辞書にvalueとして入っているデータを返します。次に辞書内のvalueを検索するサンプルコードを示します。1行目ではvaluesメソッドを使って、辞書populationのvalueを取得しています。2行目と3行目では、辞書populationのvalueを検索して、10と100が存在しているか確認しています。実行結果から検索が正しく行われていることがわかります。

Pythonコード

In [5]:

print(population.values())
print(10 in population.values())
print(100 in population.values())

実行結果

Jupyter Notebookで実行した結果です。辞書のvalueの検索を行なっています。
Jupyter Notebookでの実行結果:辞書型のvalueの検索

辞書型で繰り返し処理を行なう

辞書型もリスト型と同じように、for文で利用することができます。ここでは、いくつか例を示します。

keyのみ扱う場合

次のサンプルコードに示すように、for文で辞書名のみを指定すると、keyを取得できます。実行結果から辞書populationのkeyを正しく取得できていることがわかります。

Pythonコード

In [6]:

for key in population:
    print(key)

実行結果

Jupyter Notebookで実行した結果です。辞書のkeyを使った繰り返し処理を行なっています。
Jupyter Notebookでの実行結果:辞書型の繰り返し処理(keyのみ)

valueのみ扱う場合

次のサンプルコードに示すように、先ほど説明したvaluesメソッドを使えば、辞書のvalueをfor文の変数に入れることができます。実行結果から辞書populationのkeyを正しく取得できていることがわかります。

Pythonコード

In [7]:

for value in population.values():
    print(value)

実行結果

Jupyter Notebookで実行した結果です。辞書のvalueを使った繰り返し処理を行なっています。
Jupyter Notebookでの実行結果:辞書型の繰り返し処理(valueのみ)

keyとvalueの両方を扱う場合

辞書のkeyとvalueの両方をfor文の変数に入れる場合には、辞書型のitemsメソッドを使うことで可能になります。次にサンプルコードと実行結果を示します。実行結果から辞書populationのkeyとvalue両方を正しく取得できていることがわかります。

Pythonコード

In [8]:

for key, value in population.items():
    print(key, value)

実行結果

Jupyter Notebookで実行した結果です。辞書のkeyとvalueを使った繰り返し処理を行なっています。
Jupyter Notebookでの実行結果:辞書型の繰り返し処理(keyとvalue両方)

まとめ

今回はPythonの「辞書型」について紹介しました!次回はPytyonの「関数」について扱う予定です!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です