「Pythonで辞書のキーとバリューを降順、昇順に並び替えたい…」
「リスト内要素の辞書をソートしたい…」
普段仕事でPythonを使ってデータ分析などをする方によくある悩みですが、やり方とコツさえ掴めば「辞書のソート」はPython初心者でも簡単にできるようになります。
この記事では、「Pythonで辞書の要素をソートする方法」を3パターン紹介します。
具体的に以下の3パターンです。
1. 辞書のキーでソート
2. 辞書のバリューでソート
3. リスト内の要素の辞書をソート
普段仕事でPythonをよく使う私が、辞書のソート方法を1つずつ紹介してきます。
辞書のソートで悩んでいる方は是非、参考にしてみて下さい!
辞書のキーでソート
まず最初に、辞書(dict型)のキーでソートする方法について紹介してきます。
リスト(list型)をソートする際には、sort()やsorted()メソッドを使って要素の並び替えることができますが、辞書にそのままこのメソッドを使用するとエラーになってしまいます。
そこで、辞書をソートするためにlambda式を利用します。
実際にPythonコードを見て辞書のキーでソートする方法を理解していきましょう。
data = {
"dog" : 20,
"cat" : 25,
"bird" : 5
}
#昇順
data_sorted = sorted(data.items(), key=lambda x:x[0])
print(data_sorted)
#降順
data_sorted = sorted(data.items(), key=lambda x:x[0], reverse=True)
print(data_sorted)
---output---
#昇順
[('bird', 5), ('cat', 25), ('dog', 20)]
#降順
[('dog', 20), ('cat', 25), ('bird', 5)]
辞書のバリューでソート
次に、辞書(dict型)のバリューでソートする方法について紹介していきます。
バリューでソートするときは、キーでソートするときと一緒でlambda式を使います。
data = {
"dog" : 20,
"cat" : 25,
"bird" : 5
}
#昇順
data_sorted = sorted(data.items(), key=lambda x:x[1])
print(data_sorted)
#降順
data_sorted = sorted(data.items(), key=lambda x:x[1], reverse=True)
print(data_sorted)
---output---
#昇順
[('bird', 5), ('dog', 20), ('cat', 25)]
#降順
[('cat', 25), ('dog', 20), ('bird', 5)]
リスト内の要素の辞書をソート
最後にリスト内にある辞書の中身をソートする方法について紹介していきます。
こちらも前2つの方法と同様にlambda式を使ってソートしていきます。
それではコードを見ていきましょう!
data = [
{"Country" : "Japan", "ID" : 1},
{"Country" : "America", "ID" : 2},
{"Country" : "China", "ID" : 3}
]
#Country、昇順でソート
data_sorted = sorted(data, key=lambda x:x["Country"])
print(data_sorted)
#ID、降順でソート
data_sorted = sorted(data, key=lambda x:x["ID"], reverse=True)
print(data_sorted)
---output---
#Country、昇順でソート
[{'Country': 'America', 'ID': 2}, {'Country': 'China', 'ID': 3}, {'Country': 'Japan', 'ID': 1}]
#ID、降順でソート
[{'Country': 'China', 'ID': 3}, {'Country': 'America', 'ID': 2}, {'Country': 'Japan', 'ID': 1}]
最後に
今回は、「Pythonで辞書の要素をソートする方法」を3種類紹介してきました。
lambda式を使えば一発で解決できることが分かりましたね!
私のサイトでは、他にもPythonに関する有益な情報を発信しています!
興味のある方はこちらの記事も合わせて読むのをオススメします。
コメント