Python で辞書のリストを並べ替える
リストは Python の線形コレクション オブジェクトであり、すべての要素を特定のインデックスに格納することで配列をエミュレートできます。 リストには、キーと値のペアを含む辞書など、他のオブジェクトも格納できます。
このチュートリアルでは、Python で辞書のリストを並べ替える方法を示します。
sorted()
関数を使用して、Python で辞書のリストを並べ替えます
この関数は、既存のリストを受け取り、ソートされたリストを返します。 リストを昇順または降順でソートできます。 要素の順序を決定する関数を提供する key
パラメータを指定することもできます。
sorted()
関数を使用して辞書のリストをソートすると、利点が得られます。 ただし、比較演算子を使用してディクショナリ インスタンスを比較するのは簡単ではありません。 key
パラメータを使用する必要があります。
key
の値に基づいてリストをソートできます。 もう 1つの条件は、その key
がリスト内のすべての辞書で共通であることです。
この例を見てみましょう。
lst = [{"n": 1}, {"n": 4}, {"n": 2}]
print(sorted(lst, key=lambda d: d["n"]))
出力:
[{'n': 1}, {'n': 2}, {'n': 4}]
上記の例には、同じキー n
を持つ辞書があり、このキーの値に基づいて並べ替えています。 sorted()
関数の key
パラメータで lambda
関数を割り当てます。
この 1 行の関数は、この key
に関連付けられた値を考慮して並べ替えるようにパラメーターに指示します。 lambda
関数の代わりに operator.itemgetter()
関数を使用することもできます。
この関数を使用して辞書から値を取得し、比較に使用できます。 以下のコードを参照してください。
import operator
lst = [{"n": 1}, {"n": 4}, {"n": 2}]
print(sorted(lst, key=operator.itemgetter("n")))
出力:
[{'n': 1}, {'n': 2}, {'n': 4}]
reverse
パラメータを使用して True
に設定し、リストを降順でソートすることもできます。 たとえば、次のコード フェンスを参照してください。
import operator
lst = [{"n": 1}, {"n": 4}, {"n": 2}]
print(sorted(lst, key=operator.itemgetter("n"), reverse=True))
出力:
[{'n': 4}, {'n': 2}, {'n': 1}]
上記の例は、リストが降順でソートされていることを示しています。
sort()
関数を使用して、Python で辞書のリストを並べ替えます
sort()
関数は、リストを並べ替える sorted
メソッドと同様に機能します。 主な違いは、sort()
関数が元のリストの順序を変更し、後者が新しいリストを作成することです。
operator.itemgetter()
および lambda
関数を使用して、sorted
関数を使用したのと同じ方法で sort()
メソッドを使用できます。
前の例で行ったように、key
パラメータを使用します。 reverse
パラメータを使用して、リストを降順にソートすることもできます。
以下のコードを参照してください。
import operator
lst1 = [{"n": 1}, {"n": 4}, {"n": 2}]
lst2 = [{"n": 5}, {"n": 1}, {"n": 3}]
lst1.sort(key=lambda d: d["n"])
lst2.sort(key=operator.itemgetter("n"), reverse=True)
print(lst1, lst2)
出力:
[{'n': 1}, {'n': 2}, {'n': 4}] [{'n': 5}, {'n': 3}, {'n': 1}]
上記の例は、元のリストが変更され、必要な key
に従ってソートされたことを示しています。
最初のリストは lambda
関数を使用しています。 2つ目は operator.itemgetter
メソッドを使用し、reverse
パラメーターを使用してリストを降順に並べ替えます。
したがって、Python で辞書のリストをソートするには 2つの方法があります。 まず、sorted
および sort
関数を使用しました。 辞書のリストをソートするには、すべての辞書で共通の key
の値を使用します。
この値を返す関数を作成し、両方の関数で key
パラメータで指定します。 このための lambda
および operator.itemgetter
メソッドについて説明しました。
結果を降順で取得するには、reverse
パラメータを使用して True
に設定します。 ブラボー! Python で辞書のリストをソートする方法を学習しました。
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn