Python | 辞書のリストで指定したキー名の値でソートする方法

Python 辞書,Python リスト,Python

Python | 辞書のリストで指定したキー名の値でソートする方法

Pythonのsorted()関数を利用して辞書のリストにあるキー名でソートする方法とサンプルコードを紹介しています。

確認環境

Windows11 ローカル
Python python-3.11.1

sorted()関数で辞書のリストにあるキー名でソートする

Pythonで辞書のリストにあるキー名でソートするにはsorted()関数が利用可能です。
第一引数には、対象にする辞書のリスト、第二引数にはlambda式を記述します。

シンプルな構造のリストであれば、次ようなコードで指定したキー名にある値で辞書のリストをソートする事が可能です。

下記サンプルコードではキー名「val」の値でソートされた辞書のリストが返されている事が確認できます。

data = [{'name': 'Apple', 'val': 100}, {'name': 'Banan', 'val': 50}, {'name': 'Pine', 'val': 150}]
data2 = sorted(data, key=lambda  x: x['val'])

print(data2)
# [{'name': 'Banan', 'val': 50}, {'name': 'Apple', 'val': 100}, {'name': 'Pine', 'val': 150}]

辞書ではない値がリストに入っていた場合、TypeError が出力されます。

TypeError: 'type' object is not subscriptable
タイプエラー:’type' オブジェクトは添字可能ではありません

このエラーの詳細については以下のページで紹介しています。

関連:Python | ‘type’ object is not subscriptable エラーの原因と解決策 | ONE NOTES