カテゴリ: Python 更新日: 2026/05/11

Pythonの辞書をソートする方法(キー・値で並び替える方法)を初心者向けに解説!

Pythonの辞書をソートする方法(キー・値で並び替える方法)
Pythonの辞書をソートする方法(キー・値で並び替える方法)

先生と生徒の会話形式で理解しよう

生徒

「先生、Pythonの辞書って何ですか?そして、その辞書を並べ替えたいんですけど、どうすればいいですか?」

先生

「Pythonの辞書は、『キー』と『値』がセットになったデータの集まりです。例えば、電話帳のようなもので、名前(キー)と電話番号(値)がペアになっています。辞書はもともと順番が決まっていないんですが、並べ替えもできますよ。」

生徒

「キーや値でどうやって並べ替えるんですか?簡単に教えてほしいです。」

先生

「わかりました。これからキーで並べ替える方法と値で並べ替える方法を、わかりやすく説明しますね!」

1. Pythonの辞書(dict)とは?基本の仕組みと特徴を初心者向けに解説

1. Pythonの辞書(dict)とは?基本の仕組みと特徴を初心者向けに解説
1. Pythonの辞書(dict)とは?基本の仕組みと特徴を初心者向けに解説

Pythonの辞書(dict)は、情報を「名前」と「中身」のセットで管理するための非常に便利な仕組みです。この「名前」のことをキー(key)、「中身」のことを値(value)と呼びます。

身近なもので例えると、スマートフォンの「連絡先」アプリが分かりやすいでしょう。「友人の名前」がキーで、その人の「電話番号」が値にあたります。名前を検索すれば、すぐに対応する番号が見つかりますよね。このように、特定のキーワードから素早くデータを取り出せるのが辞書の最大の特徴です。

まずは、簡単なプログラムで辞書の書き方を見てみましょう。


# テストの点数を管理する辞書の例
score_data = {"田中": 85, "佐藤": 92, "鈴木": 78}

# 「佐藤」さんの点数を取り出す
print(score_data["佐藤"])

このコードでは、"佐藤"というキーを指定することで、そのペアである92という値を瞬時に呼び出しています。

ここで1つ、大切なポイントがあります。辞書は「ラベル(キー)」を見て中身を探す仕組みなので、「どの順番でデータを入れたか」という順序は本来重視されません。(※Python 3.7以降は内部的に順序が保持されますが、基本はバラバラな箱の集まりだとイメージしてください)

そのため、データを「点数が高い順」や「名前のあいうえお順」に並べて表示したい場合には、今回解説する「ソート(並び替え)」という操作が必要になるのです。

2. なぜPythonの辞書をソート(並び替え)する必要があるの?

2. なぜPythonの辞書をソート(並び替え)する必要があるの?
2. なぜPythonの辞書をソート(並び替え)する必要があるの?

Pythonの辞書は、データを素早く検索することに特化していますが、標準の状態では「登録した順番」や「アルファベット順」にきれいに並んでいるわけではありません。そのため、以下のような場面でソート(並べ替え)が必要になります。

  • データを読みやすくするため: バラバラな名簿を、名前順(五十音順)に並べ替えて表示したいとき。
  • ランキングを作りたいとき: テストの点数や売上データを、数値の大きい順(降順)に並べて順位を決めたいとき。
  • 処理の優先順位を決めるとき: 日付や優先度の数値を見て、上から順番にプログラムを実行させたいとき。

例えば、次のようなバラバラの点数データがある場合を考えてみましょう。


# バラバラに登録された点数データ
score_data = {"田中": 60, "佐藤": 95, "鈴木": 72}

# このままだと誰が高い点数なのか一目で分かりにくい…
# これを「点数が高い順」に並べ替えると、ランキング表のように整理できます!

並べ替えは、単に見栄えを整えるだけでなく、「データを意味のある順番に整理し直す」という非常に重要な作業です。パソコンのファイルを名前順や日付順に並べ替えるのと同じ感覚で、プログラムでもデータを整理整頓してみましょう。

3. Pythonで辞書をキー(Key)で並べ替える方法

3. Pythonで辞書をキー(Key)で並べ替える方法
3. Pythonで辞書をキー(Key)で並べ替える方法

辞書の「名前(キー)」を基準にして、五十音順やアルファベット順に整列させたいときは、Pythonの標準関数であるsorted()(ソーティッド)を使うのが最も一般的で簡単です。

sorted()は、バラバラになっている要素を特定のルールに従って並べ替える役割を持っています。これを利用して、「キーを並べ替える」→「その順番で辞書を作り直す」というステップを踏むことで、きれいに整列した辞書が完成します。

プログラミングが初めての方でも分かりやすいよう、簡単な名簿の例で見てみましょう。


# 出席番号順ではないバラバラな名簿
students = {"suzuki": 3, "sato": 1, "tanaka": 2}

# 1. キー(名前)をアルファベット順にソートし、新しい辞書を作る
# 辞書内包表記という書き方を使って、並べ替えた順にデータを詰め直します
sorted_students = {key: students[key] for key in sorted(students)}

print(sorted_students)

実行結果:


{'sato': 1, 'suzuki': 3, 'tanaka': 2}

このコードのポイントは、sorted(students)の部分です。ここでPythonが辞書のキーだけを抜き出し、s -> tといった具合にアルファベット順に並べ替えてくれます。

もし、逆順(降順)にしたい場合は、sorted(students, reverse=True)と書くだけでOKです。たったこれだけの記述で、膨大なデータも一瞬で整理できるのがPythonの強みですね。まずはこの「基本の型」を覚えておきましょう。

4. Pythonで辞書を値で並べ替える方法

4. Pythonで辞書を値で並べ替える方法
4. Pythonで辞書を値で並べ替える方法

次に、値の大きさで辞書を並べ替える方法です。こちらもsorted()を使いますが、キーではなく「値」を見て並べ替えます。

ここで「キー」と「値」を混同しないようにしましょう。
辞書は「キー(名前)」と「値(中身)」のセットなので、今回は「値」を基準に並べ替えます。

コードを見てください。


fruits = {"apple": 3, "banana": 1, "orange": 2}

# 値で並べ替えた辞書を作る
sorted_dict_by_value = {k: v for k, v in sorted(fruits.items(), key=lambda item: item[1])}

print(sorted_dict_by_value)

ここで使っているfruits.items()は、辞書の中の「キーと値のペア」を取り出す方法です。
また、key=lambda item: item[1]は、「値(ペアの2番目)」を並べ替えの基準にする、という意味です。

実行すると、値が小さい順に並べ替えられた辞書が表示されます。


{'banana': 1, 'orange': 2, 'apple': 3}

5. もっとわかりやすく!辞書のソートの仕組みを日常生活で例えると?

5. もっとわかりやすく!辞書のソートの仕組みを日常生活で例えると?
5. もっとわかりやすく!辞書のソートの仕組みを日常生活で例えると?

辞書のソートを日常生活の例で考えてみましょう。

たとえば、家にいくつかの本があります。
「本のタイトル」がキー、「ページ数」が値だとします。

  • キー(タイトル)で並べ替える:タイトルのアルファベット順に本を並べる。
  • 値(ページ数)で並べ替える:ページ数が少ない順に本を並べる。

このように基準を変えるだけで、整理の仕方が変わります。Pythonの辞書ソートも同じ感覚です。

6. まとめないけど大事!辞書をソートする時に注意したいポイント

6. まとめないけど大事!辞書をソートする時に注意したいポイント
6. まとめないけど大事!辞書をソートする時に注意したいポイント

辞書は元々順番がないデータです。ソートすると新しい順番の辞書が作られますが、元の辞書自体は変わりません。

Python3.7以降は辞書が順番を保持するようになりましたが、それでも明示的にソートした辞書を新しく作ることが一般的です。

また、ソートの基準をしっかり理解してからコードを書くとミスを減らせます。今回紹介したsorted()lambdaの使い方は、他のデータ操作でも役立つ基本のテクニックです。

7. 練習問題:自分で辞書を作って並べ替えてみよう!

7. 練習問題:自分で辞書を作って並べ替えてみよう!
7. 練習問題:自分で辞書を作って並べ替えてみよう!

下のように自分で辞書を作って、キーで並べ替えたり値で並べ替えたりしてみてください。


my_dict = {"dog": 5, "cat": 3, "bird": 8}

# キーで並べ替え
sorted_by_key = {k: my_dict[k] for k in sorted(my_dict)}

# 値で並べ替え
sorted_by_value = {k: v for k, v in sorted(my_dict.items(), key=lambda x: x[1])}

print(sorted_by_key)
print(sorted_by_value)

これを自分で実行してみると、辞書の並べ替えがぐっと身近に感じられますよ。

まとめ

まとめ
まとめ

Pythonの辞書ソートを通して理解した基本の考え方

この記事では、Pythonの辞書をキーや値で並び替える方法について、初心者にも分かりやすい形で学んできました。Pythonの辞書は「キー」と「値」がセットになったデータ構造であり、リストやタプルとは異なり、データを名前で管理できる点が大きな特徴です。その一方で、辞書はそのままでは順番を意識して扱えないため、一覧表示や整理をしたい場面ではソートが必要になります。

キーで並べ替える方法では、sorted()関数を使ってキーを順番に並べ、その順序をもとに新しい辞書を作成しました。これにより、アルファベット順や数字の昇順といった、直感的に分かりやすい形でデータを確認できるようになります。Python初心者にとって、辞書のキーでソートする方法は、辞書構造を理解するうえで非常に重要なステップです。

値でソートすることで見えてくるデータの意味

辞書を値で並べ替える方法では、items()lambdaを組み合わせて、キーと値のペアを基準にソートしました。値でソートすることで、数値の大小や評価の高低など、データの中身そのものに注目した整理が可能になります。これは、Pythonでデータ分析や集計を行う際にも非常によく使われる考え方です。

以下は、今回の記事と同じ書き方を使った、値でソートするシンプルな例です。構文を繰り返し見ることで、辞書ソートの流れが自然と身についていきます。


scores = {"佐藤": 80, "鈴木": 95, "田中": 70}

sorted_scores = {k: v for k, v in sorted(scores.items(), key=lambda item: item[1])}

print(sorted_scores)

このように、値を基準に並べ替えることで、点数の低い順や高い順といった形でデータを整理できます。Pythonの辞書ソートは、単なる並び替えではなく、「どの基準でデータを見るか」を意識する練習にもなります。

辞書ソートを理解することの実用的なメリット

辞書をソートできるようになると、プログラムの見やすさや処理の分かりやすさが大きく向上します。例えば、設定情報をキー順に整理したり、集計結果を値の順番で表示したりといった場面で役立ちます。Pythonでは、辞書・リスト・タプルといったデータ構造を組み合わせて使うことが多いため、辞書のソートを理解しておくことで、より柔軟なプログラムが書けるようになります。

また、今回学んだsorted()lambdaの考え方は、辞書以外のデータ操作にも応用できます。Python初心者の段階でこれらの基本をしっかり押さえておくことで、今後の学習がスムーズに進みます。

先生と生徒の振り返り会話

生徒

「辞書は順番がないから難しそうだと思っていましたが、キーや値を基準に並べ替えられると分かって、すごく使いやすく感じました。」

先生

「それは良い気づきですね。Pythonの辞書は、そのままだと順番を意識しませんが、必要なときにソートすることで、整理された形で扱えます。」

生徒

「キーで並べ替える方法と、値で並べ替える方法の違いも理解できました。どちらを使うかで、見え方が全然変わりますね。」

先生

「その通りです。データをどう整理したいのかを考えて、ソートの基準を選ぶことが大切です。今回学んだ辞書のソートは、Pythonの基礎力を高めるうえでとても重要ですよ。」

生徒

「これからは、自分で作った辞書も積極的に並べ替えて、データの中身を確認するようにしてみます。」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
New2
PHP
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
New3
PHP
PHPのメール送信でSPF・DKIM認証設定を完全解説!初心者でもわかるメール認証の基本
New4
Python
PythonでAPIのパフォーマンスを向上させる方法!キャッシュ活用を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
PHP
PHPのHTMLメールの作成方法を完全ガイド!初心者でもわかるメール送信の基本
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
Python
Pythonの例外を発生させる方法を完全解説!raise文の使い方を初心者向けにやさしく説明
No.8
Java&Spring記事人気No8
Python
Pythonで2次元リストを作成・操作する方法(リストのリスト)