Python|辞書のキーや値でソートする方法」

1. はじめに

Pythonでデータを扱う際に頻繁に登場するのが「辞書(dict)」です。
特に、辞書のキーや値でソートする方法を覚えておくと、実務やデータ処理において非常に便利です。
本記事では、Python|辞書のキーや値でソートする方法をテーマに、初学者にもわかりやすく解説していきます。

記事を読み終えるころには、辞書を自在に並び替える力が身につき、データの整理や表示がスムーズになるでしょう。

 

2. Pythonの辞書とソートの基本

2-1. Pythonの辞書(dict)とは?

辞書はキーと値のペアを格納できるPythonのデータ型で、以下のように定義します。

person = {'name': 'Alice', 'age': 30, 'city': 'Tokyo'}

このように、nameagecity がキー、それぞれの値がバリューです。

2-2. 辞書のソートに使う関数

辞書をソートするには、Pythonのsorted()関数を使用します。
ただし、辞書型自体は順序を持たないため、ソート結果はリストで得られる点に注意しましょう。

以下はキーでソートする基本例です。

data = {'b': 3, 'a': 2, 'c': 1}

# キーでソート
sorted_keys = sorted(data.items())

print(sorted_keys)
# 出力: [('a', 2), ('b', 3), ('c', 1)]

実行結果:

[('a', 2), ('b', 3), ('c', 1)]

 

3. よくある使い方・応用例

3-1. 値でソートする方法

値で並び替えたい場合は、key=引数にラムダ式を使います。

data = {'b': 3, 'a': 2, 'c': 1}

# 値でソート
sorted_by_value = sorted(data.items(), key=lambda x: x[1])

print(sorted_by_value)
# 出力: [('c', 1), ('a', 2), ('b', 3)]

実行結果:

[('c', 1), ('a', 2), ('b', 3)]

3-2. 辞書としてソート結果を保持したい

リストではなく、dict形式で保持したい場合は、dict()で再構築します。

# キーで昇順ソートした辞書を作る
sorted_dict_by_key = dict(sorted(data.items()))
print(sorted_dict_by_key)
# 出力: {'a': 2, 'b': 3, 'c': 1}

# 値で昇順ソートした辞書を作る
sorted_dict_by_value = dict(sorted(data.items(), key=lambda x: x[1]))
print(sorted_dict_by_value)
# 出力: {'c': 1, 'a': 2, 'b': 3}

実行結果:

{'a': 2, 'b': 3, 'c': 1}
{'c': 1, 'a': 2, 'b': 3}

3-3. 値で降順に並び替える

# 値で降順にソート
sorted_desc = dict(sorted(data.items(), key=lambda x: x[1], reverse=True))
print(sorted_desc)
# 出力: {'b': 3, 'a': 2, 'c': 1}

実行結果:

{'b': 3, 'a': 2, 'c': 1}

3-4. 実務での活用例:スコアのランキング

scores = {'Tom': 80, 'Jane': 92, 'Bob': 75}

# 得点順に並び替え(高い順)
ranking = dict(sorted(scores.items(), key=lambda x: x[1], reverse=True))
print(ranking)
# 出力: {'Jane': 92, 'Tom': 80, 'Bob': 75}

実行結果:

{'Jane': 92, 'Tom': 80, 'Bob': 75}

このように、ランキングのような実務シーンで非常に役立ちます。

 

4. 注意点・エラー対策

4-1. 辞書そのものはソートされない

sorted()は新しいリストや辞書を作る関数です。
元の辞書dataは変更されません。

4-2. items()を忘れるとTypeErrorになる

辞書を直接sorted(data)とすると、キーだけが対象になり、値でソートできません。
値でソートしたいときは必ずdata.items()を使いましょう。

# 間違った例(値でソートされない)
sorted(data)  # キーだけがソートされる

実行結果:

['a', 'b', 'c']

4-3. 複雑な値の比較に注意

値がリストや辞書などの複雑な型になると、比較ができずエラーになります。
その場合は、比較可能な値に変換してからソートする工夫が必要です。

 

5. まとめ

  • Pythonの辞書はソート対象としては直接扱えないため、sorted()items()を組み合わせて並び替える
  • キーや値によって並び替えられるため、データ分析・可視化・ランキングに便利
  • dict形式で再構築することで、ソート結果をそのまま活用可能

この知識を活かせば、日々のプログラミングや実務でもデータを見やすく整理しやすくなります。
Python初心者のうちにマスターしておくと後々とても役立つテクニックです!

タイトルとURLをコピーしました