3種類の基本ループ処理
dictionary型のループは、以下の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と値が出力