【Python】辞書のリストをサイズ(要素数)順に並べ替える方法
Pythonでは、複数の辞書を含むリストを「サイズ(要素数)」の順に並べ替えたいケースがあります。このような場合、引数を1つ受け取る関数を定義し、組み込み関数 len を使って各辞書の長さを返すことで実現できます。
ここでは sort() メソッドの key 引数に独自の関数を指定する方法を紹介しますが、より簡潔に記述したい場合はラムダ式を使うことも可能です。
サンプルコード
def get_len(element):
return len(element)
my_dict = [{24: 56, 29: 11, 10: 22, 42: 28}, {54: 73, 59: 11}, {13: 39}, {31: 22, 59: 73, 57: 44}]
print("元の辞書のリスト:")
print(my_dict)
my_dict.sort(key=get_len)
print("並べ替え後の結果:")
print(my_dict)
実行結果
元の辞書のリスト:
[{24: 56, 29: 11, 10: 22, 42: 28}, {54: 73, 59: 11}, {13: 39}, {31: 22, 59: 73, 57: 44}]
並べ替え後の結果:
[{13: 39}, {54: 73, 59: 11}, {31: 22, 59: 73, 57: 44}, {24: 56, 29: 11, 10: 22, 42: 28}]
コードの解説
まず
get_lenという名前の関数を定義します。この関数は引数として要素を受け取り、len()を使ってその要素の長さ(キーの数)を返します。次に、複数の辞書を含むリストを定義し、コンソールに表示します。
sort()メソッドを呼び出し、key引数に先ほど定義したget_len関数を指定します。これにより、各辞書の要素数を基準に昇順で並べ替えが行われます。並べ替え後のリストがコンソールに出力されます。要素数が少ない辞書から順に並んでいることが確認できます。
補足:ラムダ式を使った簡潔な書き方
専用の関数を定義しなくても、ラムダ式を使えば1行で同じ処理を実現できます。
my_dict.sort(key=lambda x: len(x))
また、降順で並べ替えたい場合は reverse=True を指定します。用途に応じて使い分けるとよいでしょう。
-
Pythonで学ぶ選択ソートの基本原理と実装方法をわかりやすく解説
本記事では、選択ソート(Selection Sort)の基本的な仕組みと、Python 3.xでの実装方法について詳しく解説します。 選択ソートとは? 選択ソートは、ソートされていない部分から最小値の要素を繰り返し見つけ出し、それを先頭に移動させることで配列全体を整列していくアルゴリズムです。処理の過程では、与えられた配列が次の2つの部分配列に分けられます。 すでにソートが完了している部分配列 まだソートされていない部分配列 選択ソートの各イテレーション(反復処理)では、未ソート部分から最小要素を取り出し、ソート済み部分の末尾に挿入していきます。この操作を繰り返すことで、最終的に配列全体
-
Pythonの辞書(dict)の使い方を徹底解説!作成・取得・追加・削除の基本
辞書(Dictionary)は、Pythonで最もよく使われるマッピング型です。キーと値のペアでデータを管理できるため、JavaのMapに似たオブジェクトだと言えます。 Pythonでは、波括弧 {} を使って辞書リテラルを作成します。キーと値はコロン : で結び、各ペアはカンマ , で区切ります。 辞書の作成方法 まずは、基本的な辞書の作成例を見てみましょう。 datedict = { date: 13, month: January, year: 1970 } print(datedict) 実行結果: {date: 13, month: January, year: 197