Pythonで辞書(dict)をソートする方法|キー・値で並べ替える2つのテクニック
Pythonの辞書(dict)は、キーと値のペアで構成されるデータ構造です。辞書をソートするには、主に以下の2つの基準があります。
キーでソート - キーを昇順に並べ替えます。値の順序は考慮されません。
値でソート - 値を昇順に並べ替えます。
方法1:キーで辞書をソートする
この方法では、辞書をキーの昇順に並べ替えます。
入力:
{2:90, 1: 100, 8: 3, 5: 67, 3: 5}出力:
{1:100, 2:90, 3:5, 5:67, 8:3}上記のように、辞書がキーの順序に従ってソートされていることがわかります。
コード例
dic={2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2={}
for i in sorted(dic):
dic2[i]=dic[i]
print(dic2)出力結果
{1: 100, 2: 90, 3: 5, 5: 67, 8: 3}コードの解説
ソート対象となる辞書を宣言します。
ソート済みのキーと値のペアを格納するための空の辞書を宣言します。
sorted(dic) は、dic のすべてのキーをソートした順序で返します。返されるのはキーのみで、キーと値のペアではありません。sorted(dic) の結果は [1, 2, 3, 5, 8] になります。
ソートされた各キーについて、そのキーと対応する値を dic2 に追加します。
最終的に、dic2 にはキーが昇順にソートされたすべてのキーと値のペアが格納されます。
方法2:値で辞書をソートする
この方法では、辞書を値の昇順に並べ替えます。
入力:
{2:90, 1: 100, 8: 3, 5: 67, 3: 5}出力:
{8:3, 3:5, 5:67, 2:90, 1:100}上記のように、辞書が値の順序に従ってソートされていることがわかります。
辞書を値でソートするには、sorted() メソッドと items() メソッドを組み合わせて使用します。
items() は、辞書のアイテム(キーと値のペア)を取得するために使用されます。
key=lambda x: x[1] は、ラムダ関数を使用したソートの仕組みです。x[1] は各ペアの値(インデックス1)を指します。
これにより、ソートされたキーと値のペアが得られ、dict() を使って辞書形式に変換されます。
コード例
dic={2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2=dict(sorted(dic.items(),key= lambda x:x[1]))
print(dic2)出力結果
{8: 3, 3: 5, 5: 67, 2: 90, 1: 100}まとめ
Pythonで辞書をソートする場合、キーで並べ替えるなら sorted(dic) をループで処理する方法、値で並べ替えるなら sorted() と items() を組み合わせてラムダ関数で指定する方法が便利です。用途に応じて使い分けることで、データを効率的に整理できます。
-
Pythonで文字列の文字をアルファベット順に並べ替える方法
sorted()関数とjoin()メソッドを組み合わせる Pythonで文字列内の文字をアルファベット順に並べ替えるには、組み込み関数のsorted()を使用します。sorted()は並べ替えられた文字のリストを返すため、その後にjoin()メソッドでリストの要素を連結すると、並べ替え済みの文字列として取得できます。 >>> s = helloworld >>> .join(sorted(s)) dehllloorw この例では、文字列helloworldに含まれるすべての文字(重複を含む)がアルファベット順に並べ替えられ、dehllloorwという結果が得
-
Pythonで文字列のリストを並べ替える方法:sort()とsorted()の使い分け
Pythonでは、文字列のリストを並べ替える方法が2つ用意されています。リスト自体を直接変更するsort()メソッドと、元のリストを保持したまま新しい並べ替え済みリストを作成するsorted()関数です。それぞれの特徴と使い方を解説します。 sort()メソッドでリストをその場で並べ替える sort()は、リストそのものを並べ替える「in-place(破壊的)」な操作です。元のリストの順序が直接変更されるため、戻り値を受け取る必要はありません。 >>> a = [Hello, My, Followers] >>> a.sort() >>>