Python-Listen sortieren: Das komplette Tutorial
Das Sortieren von Daten ist ein zentraler Bestandteil fast jeder Anwendung – von der Verarbeitung von Benutzereingaben bis hin zu komplexen Datenanalyse-Algorithmen. In Python ist die Arbeit mit Listen intuitiv und die Sortierwerkzeuge bieten flexible und leistungsstarke Möglichkeiten.
Grundlagen der Arbeit mit Listen in Python
Listen in Python sind geordnete, veränderbare Sammlungen von Objekten. Sie können Elemente verschiedener Datentypen speichern und ermöglichen einen einfachen Zugriff über den Index.
zahlen = [5, 2, 9, 1, 5, 6]
woerter = ["Banane", "Apfel", "Kirsche"]
gemischte_liste = [1, "hallo", 3.14, True]
Die wichtigsten Methoden zum Sortieren von Listen
Python bietet zwei Hauptwege, um Listen zu sortieren: die Methode sort() und die Funktion sorted(). Beide haben ihre eigenen Besonderheiten und Einsatzbereiche.
Die Methode sort() – Sortieren direkt in der Liste
Die Methode sort() verändert die ursprüngliche Liste und gibt None zurück. Dieser Ansatz ist speichereffizient, da keine neue Liste erstellt wird.
zahlen = [5, 2, 9, 1]
zahlen.sort()
print(zahlen) # [1, 2, 5, 9]
Parameter der Methode sort()
Die Methode sort() akzeptiert folgende Parameter:
reverse: Bestimmt die Sortierreihenfolge (True für absteigend, False für aufsteigend)key: Eine Funktion, die das Sortierkriterium festlegt
zahlen = [5, 2, 9, 1]
zahlen.sort(reverse=True)
print(zahlen) # [9, 5, 2, 1]
Die Funktion sorted() – Eine neue, sortierte Liste erstellen
Die Funktion sorted() gibt eine neue, sortierte Liste zurück, ohne die ursprüngliche zu verändern. Das ist nützlich, wenn die originale Reihenfolge der Elemente erhalten bleiben soll.
zahlen = [5, 2, 9, 1]
neue_zahlen = sorted(zahlen)
print(neue_zahlen) # [1, 2, 5, 9]
print(zahlen) # [5, 2, 9, 1] – die ursprüngliche Liste bleibt unverändert
Absteigend sortieren mit sorted()
zahlen = [5, 2, 9, 1]
sortiert_absteigend = sorted(zahlen, reverse=True)
print(sortiert_absteigend) # [9, 5, 2, 1]
Vergleich der Sortiermethoden
| Methode | Verändert die Liste | Gibt zurück | Einsatzbereich |
|---|---|---|---|
| sort() | Ja | Nein (None) | Wenn die ursprüngliche Reihenfolge nicht benötigt wird |
| sorted() | Nein | Neue Liste | Wenn die Originaldaten erhalten bleiben sollen |
Strings in Listen sortieren
Alphabetische Sortierung
Beim Sortieren von Strings verwendet Python standardmäßig die lexikografische Reihenfolge:
woerter = ["Banane", "Apfel", "Kirsche"]
woerter.sort()
print(woerter) # ['Apfel', 'Banane', 'Kirsche']
Absteigend sortieren
woerter = ["Banane", "Apfel", "Kirsche"]
woerter.sort(reverse=True)
print(woerter) # ['Kirsche', 'Banane', 'Apfel']
Groß- und Kleinschreibung beim Sortieren von Strings
Groß-/Kleinschreibung beachten
Standardmäßig wird bei der Sortierung die Groß-/Kleinschreibung beachtet. Großbuchstaben kommen in der ASCII-Tabelle vor Kleinbuchstaben:
woerter = ["Banane", "apfel", "Kirsche"]
print(sorted(woerter)) # ['Banane', 'Kirsche', 'apfel']
Groß-/Kleinschreibung ignorieren
Für eine Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung wird der Parameter key=str.lower verwendet:
woerter = ["Banane", "apfel", "Kirsche"]
print(sorted(woerter, key=str.lower)) # ['apfel', 'Banane', 'Kirsche']