Pythonで辞書のキーと値のリストをソートする方法
Pythonで辞書のキーや値(リスト)を並べ替えたい場合は、組み込み関数sorted()を使うと簡単に実現できます。この記事では、辞書のキーをアルファベット順にソートしつつ、各キーに対応する値のリストも昇順に並べ替える方法を解説します。
以下に具体的な実装例を示します。
サンプルコード
my_dict = {'Hi': [1, 6, 3],
'there': [2, 9, 6],
'Mark': [16, 7]}
print("The dictionary is : ")
print(my_dict)
my_result = dict()
for key in sorted(my_dict):
my_result[key] = sorted(my_dict[key])
print("The sorted dictionary is : " )
print(my_result)出力結果
The dictionary is :
{'Hi': [1, 6, 3], 'there': [2, 9, 6], 'Mark': [16, 7]}
The sorted dictionary is :
{'Hi': [1, 3, 6], 'Mark': [7, 16], 'there': [2, 6, 9]}処理の流れ
まず、値としてリストを持つ辞書を定義し、その内容をコンソールに表示します。
次に、ソート結果を格納するための空の辞書を作成します。
sorted()関数でキーをアルファベット順に並べ替えたうえで、forループにより辞書を反復処理します。
各キーに対応する値のリストもsorted()で昇順にソートし、新しい辞書へ代入していきます。
最後に、キーと値の両方がソートされた辞書をコンソールに出力します。
補足:辞書内包表記を使った簡潔な書き方
上記の処理は、辞書内包表記を活用することで、より簡潔に1行で記述することも可能です。
my_result = {key: sorted(my_dict[key]) for key in sorted(my_dict)}このようにsorted()関数を組み合わせることで、辞書のキー・値のどちらについても柔軟にソート処理を実装できます。データの整形や可読性の向上に役立つテクニックなので、ぜひ活用してみてください。
-
Pythonで辞書の値をキーにして辞書のリストを並べ替える方法
sorted()関数を使った辞書リストのソートPythonには、イテラブル(反復可能オブジェクト)の要素を指定した順序で並べ替えるための組み込み関数 sorted() が用意されています。sorted(iterable[, key][, reverse])第2引数の key には関数を指定します。この関数の戻り値が、ソート時の比較キーとして使用されます。第3引数の reverse はデフォルトで False になっており、True を指定すると降順(大きい順)に並べ替えられます。lambda式でソートキーを指定する辞書のリストを並べ替える場合は、lambda式を使って「各辞書の特定のキーの値」
-
Pythonで辞書(dict)を値で並べ替える方法【OrderedDictとsorted()活用】
Pythonで辞書を値順にソートする基本の考え方 Pythonの標準ライブラリには、高性能なコンテナデータ型を提供する collections モジュールが含まれています。その中の OrderedDict は辞書型のサブクラスで、要素が追加された順序を記憶できるのが特徴です。通常の dict もPython 3.7以降は挿入順を保持しますが、明示的に順序を扱いたい場面では OrderedDict が便利です。 OrderedDict をイテレートすると、キーが最初に追加された順序どおりにアイテムが返されます。 OrderedDictの基本的な使い方 >>> from coll