【Python】レッスン4-12:辞書のループ処理を理解しよう

一つ前のLessonでは辞書の基本について学習しました。
今回は辞書のループ処理について見ていきましょう。
Lesson1:基礎文法編
Lesson2:制御構造編
Lesson3:関数とスコープ編
Lesson4:データ構造編
・Lesson4-1:リストの定義と要素の追加を理解しよう
・Lesson4-2:リストの要素を削除しよう
・Lesson4-3:リストの情報を調べよう
・Lesson4-4:リストの集計・並べ替えを理解しよう
・Lesson4-5:リストのスライスを理解しよう
・Lesson4-6:リストのループ処理を理解しよう
・Lesson4-7:リストの内包表記を理解しよう
・Lesson4-8:リスト・タプル・辞書・集合の概要と違いを理解しよう
・Lesson4-9:タプルの基本を理解しよう
・Lesson4-10:タプルのアンパックを理解しよう
・Lesson4-11:辞書の基本を理解しよう
・Lesson4-12:辞書のループ処理を理解しよう ◁今回はココ
・Lesson4-13:辞書の内包表記を使ってリストから辞書を作ろう
・Lesson4-13:集合(セット)の基本を理解しよう
・練習問題4-1:宝探しゲームを作ろう
・練習問題4-2:ナインゲームを作ろう
・練習問題4-3:マルバツゲームを作ろう
Lesson5:オブジェクト指向編
次のステップ:Python基礎習得者にお勧めの道5選(実務or副業)
辞書を回す基礎と実践|keys()
・values()
・items()
の使い分け
辞書のループ処理は、for
文でキー・値を取り出して処理するための基本スキルです。
本記事では、keys()
・values()
・items()
の使い分けを初心者向けにわかりやすく整理します。
まずは基本の回し方から入って、実用パターンへ進みます。
辞書のループ処理方法|keys,values,itemsの3つのメソッド
Pythonでは辞書のキー、値、またはその両方をループ処理するために、いくつかの便利なメソッドが用意されています。
代表的なメソッドは以下の通りです。
メソッド | 意味 |
---|---|
keys() | 辞書のすべてのキーを取得します。 これを for ループで使うことで、各キーに対して処理を実行できます。 |
values() | 辞書のすべての値を取得します。 値だけに対してループを行いたい場合に使用します。 |
items() | 辞書のキーと値のペアを同時に取得できます。 これにより、ループ内でキーと値を同時に操作することが可能です。 |
辞書のループ処理の実例
次に、具体的なコード例を見てみましょう。
# 辞書を定義 student_scores = { "Alice": 85, "Bob": 92, "Charlie": 78 } # keys() を使ってキー(名前)だけをループ処理 for name in student_scores.keys(): print(f"学生の名前: {name}") # values() を使って値(スコア)だけをループ処理 for score in student_scores.values(): print(f"スコア: {score}") # items() を使ってキーと値のペアをループ処理 for name, score in student_scores.items(): print(f"{name} のスコアは {score} 点です")
このコードでは辞書 student_scores
を定義し、それぞれ keys()
、values()
、および items()
メソッドを使って異なる方法でループ処理を行っています。
keys()
では、各学生の名前だけを取得して表示します。values()
では、スコアだけを取り出して表示します。items()
では、名前とスコアの両方を同時にループして、個別に出力します。
コードの出力結果は以下の通りです。
学生の名前: Alice 学生の名前: Bob 学生の名前: Charlie スコア: 85 スコア: 92 スコア: 78 Alice のスコアは 85 点です Bob のスコアは 92 点です Charlie のスコアは 78 点です
まとめ|keys・values・itemsで、辞書を走査しよう
辞書のループ処理はkeys()
、values()
、および items()
などのメソッドを使うことで非常に簡単に行えます。
キー、値、またはその両方を適切に操作する方法を理解しておくことで、より効率的にデータを扱うことが可能になります。
- サイト改善アンケート|ご意見をお聞かせください(1分で終わります)
-
本サイトでは、みなさまの学習をよりサポートできるサービスを目指しております。
そのため、みなさまの「プログラミングを学習する理由」などをアンケート形式でお伺いしています。1分だけ、ご協力いただけますと幸いです。
【Python】サイト改善アンケート
練習問題:辞書のループ処理を使ってみよう
この記事で学習した「辞書のループ処理」を復習する練習問題に挑戦しましょう。
問題|名前とスコアを一覧表示しよう
学生の名前とスコアを管理する辞書を作成し、辞書のループ処理を学習しましょう。
以下の要件に従ってコードを完成させてください。
- 辞書
student_scores
を作成し、以下の3人の学生とスコアを登録すること。- 山田: 85点
- 佐藤: 92点
- 鈴木: 78点
keys()
を使用して、辞書に登録されている全ての学生の名前を順に表示すること。values()
を使用して、辞書に登録されている全てのスコアを順に表示すること。items()
とf文字列を使用して、各学生の名前とそのスコアを「〇〇 のスコアは △△ 点です」という形式で表示すること。
ただし、以下のような実行結果となるコードを書くこと。
学生の名前一覧: 山田 佐藤 鈴木 学生のスコア一覧: 85 92 78 学生の名前とスコア: 山田 のスコアは 85 点です 佐藤 のスコアは 92 点です 鈴木 のスコアは 78 点です
解答例|辞書ループの基本プログラム
例えば以下のようなプログラムが考えられます。
- 正解コード
-
# 辞書の定義 student_scores = { "山田": 85, "佐藤": 92, "鈴木": 78 } # keys() を使って辞書のキー(名前)をループ処理 print("学生の名前一覧:") for name in student_scores.keys(): print(name) # values() を使って辞書の値(スコア)をループ処理 print("\n学生のスコア一覧:") for score in student_scores.values(): print(score) # items() を使ってキーと値のペアをループ処理 print("\n学生の名前とスコア:") for name, score in student_scores.items(): print(f"{name} のスコアは {score} 点です")
辞書のループ処理の疑問解消|FAQと用語のまとめ
初心者がつまずきやすいポイントをFAQとしてまとめ、またよく使う専門用語をわかりやすく整理しました。
理解を深めたいときや、ふと疑問に感じたときに役立ててください。
FAQ|辞書のループ処理に関するよくある質問
- Q1. items()とkeys()の違いは何ですか?
-
items()
はキーと値のペアを返すのに対し、keys()
はキーのみを返します。両者の使い分けで処理の柔軟性が広がります。
- Q2. 辞書のループは順序が保証されていますか?
-
Python 3.7以降では、辞書のキーの順序は挿入順に維持されます。順序を前提とした処理も可能です。
- Q3. 辞書をループで編集するときの注意点は?
-
辞書を直接編集しながらループすると、予期せぬ動作の原因になります。一度コピーを作るか、削除対象を別に記録しましょう。
Python用語集|辞書のループ処理に関する用語一覧
今回の記事で出てきた用語・関数などを一覧で紹介します。
このサイトに出てくる 全てのPython用語をまとめた用語集 も活用してください。
Python用語 | 定義・使い方の概要 | 解説記事へのリンク |
---|---|---|
辞書 | 複数のキーと値のペアを格納できるデータ構造。キーを使って高速に値へアクセスできる | Lesson4-11 |
keys() メソッド | 辞書内のすべてのキーを取り出すビューオブジェクトを返すメソッド | 本記事 |
values() メソッド | 辞書内のすべての値を取り出すビューオブジェクトを返すメソッド | 本記事 |
items() メソッド | 辞書内のすべてのキーと値のペアをタプルとして返すビューオブジェクトを返すメソッド | 本記事 |