Python

【Python】辞書型の色々なループ

MAX

Pythonのイテラブルな型にはリストやタプル、集合、文字列などがあるが、辞書もイテラブルであり、ループ処理が可能である。

辞書は他の型と異なり、キーと値がセットになっているため、ループの方法が何種類かある。

3種類のループ方法がある。

  1. キーをループ
  2. 値をループ
  3. キーと値をループ
スポンサーリンク

辞書のキーをループ

辞書のキーをループさせる方法①

1dict_a = {"key1": 1, "key2": 2, "key3": 3}
2
3for v in dict_a:
4    print(f"{v=}")
5
6# v='key1'
7# v='key2'
8# v='key3'

単純に辞書をループさせると、キーがループする。

辞書のキーをループさせる方法②

1dict_a = {"key1": 1, "key2": 2, "key3": 3}
2
3for key in dict_a.keys():
4    print(f"{key=}")
5
6# key='key1'
7# key='key2'
8# key='key3'

keys()でキーをループできる。つけなくても良いが、keys()があった方が、キーをループさせていることがハッキリと分かるので親切かもしれない。

辞書の値をループ

1dict_a = {"key1": 1, "key2": 2, "key3": 3}
2
3for value in dict_a.values():
4    print(f"{value=}")
5
6# value=1
7# value=2
8# value=3

values()で辞書の値を取り出せる。

キーが必要なく、値だけが必要な場合に使うと分かりやすい。

辞書のキーと値をループ

1dict_a = {"key1": 1, "key2": 2, "key3": 3}
2
3for key, value in dict_a.items():
4    print(f"{key=}, {value=}")
5
6# key='key1', value=1
7# key='key2', value=2
8# key='key3', value=3

items()でキーと値のタプルを取得できる。

あまり使う機会はないが、タプルのまま取得すると以下のようになる。

1dict_a = {"key1": 1, "key2": 2, "key3": 3}
2
3for t in dict_a.items():
4    print(f"{t=}, {t[0]=}, {t[1]=}")
5
6# t=('key1', 1), t[0]='key1', t[1]=1
7# t=('key2', 2), t[0]='key2', t[1]=2
8# t=('key3', 3), t[0]='key3', t[1]=3

辞書型を使っている時点で、キーと値をセットで扱うことが多いと思われるため、items()を使う機会が多いと思う。

キーさえ取り出せれば、値も取得できるが、値も必要な場合、値も最初からループさせた方が処理が見やすくなりやすい。

スポンサーリンク
ABOUT ME
MAX
MAX
ITエンジニア、データサイエンティスト
新卒でSIerに入社し、フリーランスになってWEB系へ転向。
その後AIの世界へ足を踏み入れ、正社員に戻る。 テーブルデータの分析がメイン。
スポンサーリンク
記事URLをコピーしました