Pythonの辞書をソートする方法(キー・値で並び替える方法)を初心者向けに解説!
生徒
「先生、Pythonの辞書って何ですか?そして、その辞書を並べ替えたいんですけど、どうすればいいですか?」
先生
「Pythonの辞書は、『キー』と『値』がセットになったデータの集まりです。例えば、電話帳のようなもので、名前(キー)と電話番号(値)がペアになっています。辞書はもともと順番が決まっていないんですが、並べ替えもできますよ。」
生徒
「キーや値でどうやって並べ替えるんですか?簡単に教えてほしいです。」
先生
「わかりました。これからキーで並べ替える方法と値で並べ替える方法を、わかりやすく説明しますね!」
1. Pythonの辞書とは?基本のしくみを理解しよう
Pythonの辞書(dict)は、ものごとを「名前(キー)」と「意味(値)」のペアで保存するデータのかたまりです。例えば、果物の名前をキーにして、その色を値として保存することができます。
例えるなら、辞書は引き出しにしまったラベル付きの箱のようなものです。ラベルが「キー」で、箱の中身が「値」です。どの順番で箱をしまったかは気にせず、ラベルを見て中身を探します。
ただし、辞書はもともと順番が決まっていません。だから、そのままだと好きな順番に並べることはできません。
2. なぜ辞書をソート(並び替え)するの?
辞書の中身を見やすくしたいときや、特定の順番で処理したいときに並べ替えます。たとえば、名前のアルファベット順や、値の大きさ順に並べ替えることがよくあります。
パソコン初心者の方でも、データを整理する感覚で使えるので、並べ替えはとても役立ちます。
3. Pythonで辞書をキーで並べ替える方法
辞書をキーで並べ替えるには、sorted()(ソーティッド)という関数を使います。sorted()は「並べ替える」という意味です。
辞書のキーを取り出して、それをアルファベットや数字の順に並べ替えます。こうすると、キーの順番に沿った新しい辞書を作れます。
例を見てみましょう。
fruits = {"apple": 3, "banana": 1, "orange": 2}
# キーで並べ替えた辞書を作る
sorted_dict = {key: fruits[key] for key in sorted(fruits)}
print(sorted_dict)
このコードでは、sorted(fruits)がキーをアルファベット順に並べ替えます。その順番で辞書を作り直しているのです。
実行すると、次のように表示されます。
{'apple': 3, 'banana': 1, 'orange': 2}
元の辞書と比べると、キーがアルファベット順に並んでいますね。
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. もっとわかりやすく!辞書のソートの仕組みを日常生活で例えると?
辞書のソートを日常生活の例で考えてみましょう。
たとえば、家にいくつかの本があります。
「本のタイトル」がキー、「ページ数」が値だとします。
- キー(タイトル)で並べ替える:タイトルのアルファベット順に本を並べる。
- 値(ページ数)で並べ替える:ページ数が少ない順に本を並べる。
このように基準を変えるだけで、整理の仕方が変わります。Pythonの辞書ソートも同じ感覚です。
6. まとめないけど大事!辞書をソートする時に注意したいポイント
辞書は元々順番がないデータです。ソートすると新しい順番の辞書が作られますが、元の辞書自体は変わりません。
Python3.7以降は辞書が順番を保持するようになりましたが、それでも明示的にソートした辞書を新しく作ることが一般的です。
また、ソートの基準をしっかり理解してからコードを書くとミスを減らせます。今回紹介したsorted()とlambdaの使い方は、他のデータ操作でも役立つ基本のテクニックです。
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の基礎力を高めるうえでとても重要ですよ。」
生徒
「これからは、自分で作った辞書も積極的に並べ替えて、データの中身を確認するようにしてみます。」