icon
icon

Pythonにおける辞書型データのforループ処理について現役エンジニアが解説【初心者向け】

初心者向けにPythonにおける辞書型データのforループ処理について現役エンジニアが解説しています。辞書型データとはkeyとvalueのペアから構成される配列の一種です。for文とは繰り返し処理などを行う構文です。for文で辞書型データのkey要素やvalue要素を利用する方法を解説します。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

Pythonにおける辞書型データのforループ処理について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonにおける辞書型データのforループ処理について詳しく説明していくね!

大石ゆかり

お願いします!

 

目次

1時間でできる無料体験!

 

dict型データとは

dict型データとは辞書はPythonのデータ構造の一つで、連想配列して記憶している人もいるかもしれません。辞書は、keyとvalueのペアコレクションから構成されます。それぞれのkeyとvalueのペアは、keyと関連する値をマッピングします。

カンマで区切られたkeyとvalueのペアのリストを中括弧 ( { } ) で囲むことで、辞書を定義することができます。コロン ( : ) は、各keyと関連するvalueを分離するために持ち入ります。

なお、辞書型のデータには順番がありません。(リストには順番があります。)変更することが可能です。また、インデックスを用いてデータを取り出すことも可能ですが、dict型のデータを更新するたびに順番が変わることに注意が必要です。

[PR] Pythonで挫折しない学習方法を動画で公開中

for文とは

for文とは、シーケンス (リスト、タプル、辞書、セット、文字列のいずれか) の反復処理に使用されます。

これは他のプログラミング言語のforのようなものではなく、他のオブジェクト指向プログラミング言語で見られるイテレータメソッド(ある集合体のオブジェクト群の中で集合体の要素1つ1つに順次アクセスすることを可能とするパターン)のように動作します。

for文を使用すると、リスト、タプル、セットなどの各項目について1回ずつ、一連のステートメントを実行することができます。

辞書型データにおけるforループ処理の使い方

辞書型でforループ処理をする方法は大きく分けて2通りあります。

1.keyの要素を利用する場合

key要素を利用する場合には2通りの書き方があります。

  1. for key in dict.keys():
  2. for key in dict:

どちらも同じ意味となりますが、.keys()を明示した方が、わかりやすいですので、上の書き方を使って書くことをお勧めします。また、keyを利用してvalueを取得することも容易にできます。

valueの要素を利用する場合

value要素を利用する場合には以下の書き方となります。

for value in dict.values():

ただ、valueを使ってkeyを取得する方法は少々手間がかかります。そのため、keyも使いたい場合には1の方法を利用することをお勧めします。

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

forループ処理を利用して辞書型データの各要素を取得してみよう

keyを使って要素を取得する場合

例1のソースコード

fruits_dict = {'apple': 1, 'orange': 2, 'banana': 3, 'peach': 4, 'lemon': 5, 'water melon': 6}

for key in fruits_dict.keys():
 value = fruits_dict[key]
 print("key: {}, value: {}".format(key, value))

 

結果

key: lemon, value: 5
key: apple, value: 1
key: peach, value: 4
key: water melon, value: 6
key: orange, value: 2
key: banana, value: 3

 

解説

こちらの方法を使うと容易にkeyとvalueを取得できます。

最終的にはシンプルな結果になっていると思います。また、dictは順番が維持されませんので、結果が1から出力されていないことにも気をつけてください。

例2のソースコード

fruits_dict = {'apple': 1, 'orange': 2, 'banana': 3, 'peach': 4, 'lemon': 5, 'water melon': 6}

for key in fruits_dict:
 value = fruits_dict[key]
 print("key: {}, value: {}".format(key, value))

 

結果

key: lemon, value: 5
key: apple, value: 1
key: peach, value: 4
key: water melon, value: 6
key: orange, value: 2
key: banana, value: 3

 

解説

上の方法とほとんど変わりません。最終的に読み返した時に何を利用してforループをしているのかが、若干不明確です。他の人がコードを読んだ時にわかりやすいようにしてあげるのもプログラムを書く上で重要となります。

valueを使って要素を取得する場合

コード

fruits_dict = {'apple': 1, 'orange': 2, 'banana': 3, 'peach': 4, 'lemon': 5, 'water melon': 6}

keys_list = list(fruits_dict.keys())
values_list = list(fruits_dict.values())
for value in fruits_dict.values():
 key = keys_list[values_list.index(value)]
 print("key: {}, value: {}".format(key, value))

 

結果

key: lemon, value: 5
key: apple, value: 1
key: peach, value: 4
key: water melon, value: 6
key: orange, value: 2
key: banana, value: 3

 

解説

keyを取得する方法が非常に難しくなっています。これはdict型が順番を保持していないために起こることです。どちらも取得する場合にはkeyを使う方がいいでしょう。

どうしてもという時にだけ使用するか、関数を作ってしまうのも一つの方法です。

まとめ

dict型のデータをfor文を使って取得するのはいかがでしたでしょうか?Pythonのプログラムを書くと非常によく使う方法の一つかと思いますので、是非とも慣れていってください。

1時間でできる無料体験!

監修してくれたメンター

メンターkatoさん

学生時代に数値解析のためにプログラミングを始める。現在は企業にて専門職として働くかたわら、プログラムを書き業務効率化を図っている。

現在のメイン言語はPython, JavaScript。また、企業内の希望者にPythonのメンターとして基礎から教えている。テックアカデミーではJavaScriptを教える。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する