Liste der Wörterbücher in Python sortieren

Manav Narula 21 Juni 2023
  1. Verwenden Sie die Funktion sorted(), um eine Liste von Wörterbüchern in Python zu sortieren
  2. Verwenden Sie die Funktion sort(), um eine Liste von Wörterbüchern in Python zu sortieren
Liste der Wörterbücher in Python sortieren

Eine Liste ist ein lineares Sammlungsobjekt in Python, das Arrays emulieren kann, indem es jedes Element an einem bestimmten Index speichert. Listen können auch andere Objekte speichern, wie Wörterbücher, die Schlüssel-Wert-Paare enthalten.

Dieses Tutorial veranschaulicht, wie Sie eine Liste von Wörterbüchern in Python sortieren.

Verwenden Sie die Funktion sorted(), um eine Liste von Wörterbüchern in Python zu sortieren

Diese Funktion nimmt eine vorhandene Liste und gibt eine sortierte Liste zurück. Es kann die Liste in aufsteigender oder absteigender Reihenfolge sortieren. Wir können auch einen Schlüssel-Parameter angeben, der eine Funktion bereitstellt, um die Reihenfolge der Elemente zu bestimmen.

Wir können einen Vorteil erzielen, indem wir die Funktion sorted() verwenden, um die Liste der Wörterbücher zu sortieren. Es ist jedoch nicht einfach, Wörterbuchinstanzen mit dem Vergleichsoperator zu vergleichen; wir müssen den key-Parameter verwenden.

Wir können eine Liste basierend auf dem Wert des Schlüssels sortieren. Eine weitere Bedingung dafür ist, dass dieser Schlüssel allen Wörterbüchern in der Liste gemeinsam ist.

Sehen wir uns nun ein Beispiel dafür an.

lst = [{"n": 1}, {"n": 4}, {"n": 2}]
print(sorted(lst, key=lambda d: d["n"]))

Ausgang:

[{'n': 1}, {'n': 2}, {'n': 4}]

Das obige Beispiel hat Wörterbücher mit demselben Schlüssel, n, die wir basierend auf dem Wert dieses Schlüssels sortieren. Wir weisen eine lambda-Funktion mit dem key-Parameter der sorted()-Funktion zu.

Diese einzeilige Funktion weist den Parameter an, den diesem Schlüssel zugeordneten Wert zu berücksichtigen, um sie zu sortieren. Wir können auch die Funktion operator.itegetter() anstelle der Funktion lambda verwenden.

Wir können diese Funktion verwenden, um den Wert aus dem Wörterbuch zu holen und ihn zum Vergleich zu verwenden. Siehe Code unten.

import operator

lst = [{"n": 1}, {"n": 4}, {"n": 2}]
print(sorted(lst, key=operator.itemgetter("n")))

Ausgang:

[{'n': 1}, {'n': 2}, {'n': 4}]

Wir können auch den Parameter reverse verwenden und auf True setzen, um die Liste in absteigender Reihenfolge zu sortieren. Sehen Sie sich beispielsweise den folgenden Codezaun an.

import operator

lst = [{"n": 1}, {"n": 4}, {"n": 2}]
print(sorted(lst, key=operator.itemgetter("n"), reverse=True))

Ausgang:

[{'n': 4}, {'n': 2}, {'n': 1}]

Das obige Beispiel zeigt, dass die Liste in absteigender Reihenfolge sortiert wurde.

Verwenden Sie die Funktion sort(), um eine Liste von Wörterbüchern in Python zu sortieren

Die Funktion sort() funktioniert ähnlich wie die Methode sorted zum Sortieren von Listen. Der Hauptunterschied besteht darin, dass die Funktion sort() die Reihenfolge der ursprünglichen Liste ändert und letztere eine neue Liste erstellt.

Wir können die sort()-Methode genauso verwenden wie die sorted-Funktion, mit den operator.itemgetter()- und lambda-Funktionen.

Wir verwenden den Parameter key wie in den vorherigen Beispielen. Wir können auch den Parameter reverse verwenden, um die Liste in absteigender Reihenfolge zu sortieren.

Siehe Code unten.

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)

Ausgang:

[{'n': 1}, {'n': 2}, {'n': 4}] [{'n': 5}, {'n': 3}, {'n': 1}]

Das obige Beispiel zeigt, dass die Originallisten modifiziert und nach dem gewünschten Schlüssel sortiert wurden.

Die erste Liste verwendet die lambda-Funktion. Die zweite verwendet die Methode operator.itegetter und sortiert die Liste mit dem Parameter reverse absteigend.

Wir haben also zwei Möglichkeiten, eine Liste von Wörterbüchern in Python zu sortieren. Zuerst wurden die Funktionen sorted und sort verwendet. Um eine Liste von Wörterbüchern zu sortieren, verwenden wir den Wert eines gemeinsamen Schlüssels in allen Wörterbüchern.

Wir erstellen eine Funktion, die diesen Wert zurückgibt und geben ihn mit dem Parameter key in beiden Funktionen an. Wir haben dafür die Methoden lambda und operator.itemgetter besprochen.

Um das Ergebnis in absteigender Reihenfolge zu erhalten, können wir den Parameter reverse verwenden und auf True setzen. Bravo! Sie haben erfolgreich gelernt, wie Sie eine Liste von Wörterbüchern in Python sortieren.

Manav Narula avatar Manav Narula avatar

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

Verwandter Artikel - Python List