So sortieren Sie eine Liste in Python (aufsteigend und absteigend)

Erfahren Sie, wie Sie eine Liste in Python mit der Methode sort() und der Funktion sorted() sortieren. Entdecken Sie Beispiele für benutzerdefinierte Schlüsselsortierung und umgekehrte Reihenfolge.

Probieren Sie diese Lösung im Editor aus

Übersicht

Das Sortieren von Daten ist eine der häufigsten Aufgaben beim Programmieren, egal ob Sie Benutzerprofile nach Alter ordnen, Produkte nach Preis auflisten oder Suchergebnisse organisieren. Python bietet zwei integrierte, hochoptimierte Möglichkeiten zum Sortieren von Listen: die Methode „list.sort()“ und die Funktion „sorted()“. Beide verwenden einen hocheffizienten Sortieralgorithmus namens Timsort, der mit einer Zeitkomplexität von O(N log N) ausgeführt wird.

Der Hauptunterschied zwischen den beiden ist die Veränderlichkeit. Die Methode „list.sort()“ sortiert die Liste direkt, d. h. sie ändert direkt die ursprüngliche Liste und gibt „None“ zurück. Die Funktion „sorted()“ hingegen lässt die ursprüngliche Liste unverändert und gibt eine brandneue sortierte Liste zurück. Diese Unterscheidung ist entscheidend: Verwenden Sie „sort()“, wenn Sie Speicher sparen möchten und die ursprüngliche Reihenfolge nicht benötigen, und verwenden Sie „sorted()“, wenn Sie die ursprüngliche Liste intakt halten müssen oder wenn Sie Nicht-Listen-Iterables wie Tupel oder Wörterbücher sortieren möchten.

Beide Sortiermethoden akzeptieren zwei optionale Schlüsselwortargumente: „reverse“ und „key“. Das Argument „reverse“ ist ein boolescher Wert; Wenn Sie den Wert auf „True“ setzen, wird die Liste in absteigender (umgekehrter) Reihenfolge sortiert. Das Argument „key“ akzeptiert eine Funktion, die vor dem Vergleich auf jedes Element angewendet wird. Dies ermöglicht eine komplexe Sortierlogik, beispielsweise das Sortieren einer Liste von Zeichenfolgen nach ihrer Länge oder das Sortieren einer Liste von Wörterbüchern nach einem bestimmten Schlüssel.

Code- und Ausführungsausgabe

Dieser Code demonstriert das Sortieren einer Liste von Zahlen mit sort() und sorted(), das Sortieren in umgekehrter Reihenfolge und das Sortieren mit benutzerdefinierten Schlüsseln nach Zeichenfolgenlänge.

numbers = [42, 7, 12, 89, 23]

# 1. Using sorted() (returns new list)
new_sorted = sorted(numbers)
print("Original:", numbers)
print("Sorted new list:", new_sorted)

# 2. Using sort() (in-place modification)
numbers.sort()
print("Modified original list:", numbers)

# 3. Sorting in reverse (descending)
numbers.sort(reverse=True)
print("Reverse sorted list:", numbers)

# 4. Custom sorting (by string length)
words = ["banana", "pear", "apple", "fig"]
words.sort(key=len)
print("Sorted by length:", words)
Terminal-Ausgabe
Original: [42, 7, 12, 89, 23]
Sorted new list: [7, 12, 23, 42, 89]
Modified original list: [7, 12, 23, 42, 89]
Reverse sorted list: [89, 42, 23, 12, 7]
Sorted by length: ['fig', 'pear', 'apple', 'banana']

Schrittweise Umsetzung

  • Verwenden Sie die Funktion sorted(), um eine Kopie der Liste zu sortieren, ohne die Originaldaten zu ändern.
  • Verwenden Sie die Methode .sort() direkt für das Listenobjekt, um es direkt zu ändern und Speicherplatz zu sparen.
  • Übergeben Sie „reverse=True“ als Parameter, um die Elemente in absteigender Reihenfolge zu sortieren.
  • Verwenden Sie key=lambda x: ..., um Elemente basierend auf einer benutzerdefinierten Eigenschaft (wie Länge oder verschachtelten Werten) zu sortieren.

Häufig gestellte Fragen

Was ist der Unterschied zwischen list.sort() und sorted()?

list.sort() ändert die Liste direkt und gibt None zurück, während sorted() die ursprüngliche Liste unverändert lässt und eine neue sortierte Liste zurückgibt.

Wie sortiert man eine Liste von Wörterbüchern nach einem Schlüssel?

Verwenden Sie den Schlüsselparameter mit einer Lambda-Funktion oder „operator.itemgetter“. Zum Beispiel: list.sort(key=lambda item: item["age"]).

Verwandte Themen

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.