dictionary(辞書)型のループ処理

3種類の基本ループ処理

dictionary型のループは、以下の3種類あります。順番に説明していきましょう。

  1. キーのループ
  2. 値のループ
  3. キーと値のループ

キーのループ

まず、一番単純なものから説明します。listと同じ構文でfor、inでループを行うと辞書のキーがループの変数として使用できます。

for
for key変数名 in dictionary型オブジェクト:
    処理

以下のサンプルのようにループ中でキーを用いて値を取得することが可能です。

dic = {'key1': 110, 'key2': 270, 'key3': 350}
for key in dic:
    print(key) # key1〜key3が出力される
    print(dic[key]) # それぞれのkeyに対応する値が出力される

値のループ

dictionaryオブジェクトに用意されているvaluesメソッドを利用すると、値でループすることができます。

for文とvalues
for 変数名 in dictionary型.values():
    処理
dic = {'key1': 110, 'key2': 270, 'key3': 350}
for value in dic.values():
    print(value) # 値が出力される

キーと値のループ

dictionaryオブジェクトに用意されているitemsメソッドを利用すると、キーと値両方でループすることができます。

items
for key変数名, value変数名 in dictionary型.items():
    処理
dic = {'key1': 110, 'key2': 270, 'key3': 350}
for key, value in dic.items():
    print(key, value) # keyと値が出力される

ループインデックスを取得する

何番目の要素だけは処理をしない、等の処理を入れたい場合はループインデックスが必要となります。listと同様、組込みのenumerate関数を利用することで取得することができます。

enumerateとの組み合わせ
for ループインデックス, key変数 in enumerate(dictionary型):
    処理

また、itemsと組み合わせる場合は、丸括弧でキーと値を囲みましょう。

for + enumerate + items
for ループインデックス, (key変数, value変数) in enumerate(dictionary型.items()):
    処理

以下、ループインデックスと、キー、値をループ内で使用するサンプルです。

dic = {'key1': 110, 'key2': 270, 'key3': 350}

for i, value in enumerate(dic):
    print(i, value) # ループインデックスと値が出力

for i, (key, value) in enumerate(dic.items()):
    print(i, key, value) # ループインデックスとkeyと値が出力