sorted() und die key-Funktion
Sortieren Sie Zahlen, Zeichenfolgen und Tupel
sorted() und die key-Funktion ist eine kostenlose Competitive Programming Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Competitive Programming Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Competitive Programming Academy-Kurs umfasst insgesamt 4 Lektionen.
Sortieren bringt Vorteile in Wettbewerben
Viele Wettbewerbsaufgaben werden einfach, sobald die Daten geordnet sind. Ihr erstes Werkzeug ist sorted(), das eine neue sortierte Liste zurückgibt. 🏆
sorted() gibt eine Kopie zurück
Der Aufruf von sorted(nums) lässt die ursprüngliche Liste unverändert und liefert Ihnen eine neue sortierte Liste. Das ist praktisch, wenn Sie die Eingabe später noch benötigen.
nums = [3, 1, 2]
print(sorted(nums)) # [1, 2, 3]
print(nums) # [3, 1, 2]list.sort() sortiert direkt
Wenn Sie die ursprüngliche Reihenfolge nicht benötigen, sortiert list.sort() das Array direkt und gibt None zurück. Bei großen Arrays spart das Speicher.
nums = [3, 1, 2]
nums.sort()
print(nums) # [1, 2, 3]Die Standardreihenfolge ist aufsteigend
Standardmäßig sortiert Python vom kleinsten zum größten Wert. Zahlen werden aufsteigend und Zeichenketten in lexikografischer Reihenfolge Zeichen für Zeichen sortiert.
print(sorted(["pear", "apple", "kiwi"]))
# ['apple', 'kiwi', 'pear']Mit reverse umkehren
Übergeben Sie reverse=True, um vom größten zum kleinsten Wert zu sortieren. Das ist ideal, wenn ein Greedy-Schritt zuerst die größten Elemente benötigt.
print(sorted([3, 1, 2], reverse=True))
# [3, 2, 1]Lernen Sie die key-Funktion kennen
Das Argument key teilt sort mit, wie jedes Element bewertet werden soll. Python ruft key für jedes Element auf und sortiert nach den zurückgegebenen Werten.
words = ["bb", "a", "ccc"]
print(sorted(words, key=len))
# ['a', 'bb', 'ccc']key mit einem lambda-Ausdruck
Mit einem kleinen lambda-Ausdruck können Sie inline nach einem beliebigen Ausdruck sortieren. Hier ordnen wir Zahlen danach, wie weit sie von null entfernt sind.
vals = [-5, 2, -1, 3]
print(sorted(vals, key=lambda x: abs(x)))
# [-1, 2, 3, -5]Objekte nach einem Feld sortieren
Bei Tupeln oder Datensätzen setzen Sie key auf das relevante Feld. Der Rest des Elements bleibt dabei automatisch erhalten.
people = [("Ann", 30), ("Bob", 25)]
print(sorted(people, key=lambda p: p[1]))
# [('Bob', 25), ('Ann', 30)]Sortieren ist stabil
Die Sortierung in Python ist stabil: Elemente mit gleichen Schlüsseln behalten ihre ursprüngliche relative Reihenfolge. So können Sie Sortierungen sicher schrittweise aufbauen.
key ist besser als manuelles Vergleichen
Ein key wird einmal pro Element berechnet und bleibt daher bei großen Eingaben schnell. Verwenden Sie ihn, statt die Elemente selbst zu vertauschen.
Sortieren kostet O(n log n)
Python sortiert in O(n log n). Für n bis zu einigen Hunderttausend passt das problemlos in ein Zeitlimit von einer Sekunde.
Kurzer Check
Sie müssen die Liste sortieren, aber das Original unverändert behalten.
Zusammenfassung
Sie können Daten mit sorted() ordnen oder direkt sortieren, mit reverse die Richtung umkehren und mithilfe eines key beliebige Elemente bewerten. Eine stabile Sortierung hält gleiche Werte in der richtigen Reihenfolge. 🎉
Häufig gestellte Fragen
Ist die Lektion „sorted() und die key-Funktion“ kostenlos?
Ja — der vollständige Text von „sorted() und die key-Funktion“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Competitive Programming Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Competitive Programming Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „sorted() und die key-Funktion“?
Sortieren Sie Zahlen, Zeichenfolgen und Tupel Du übst Competitive Programming Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Competitive Programming Academy zu starten?
Keine Vorkenntnisse erforderlich. Competitive Programming Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „sorted() und die key-Funktion“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Competitive Programming Academy-Lektion Code schreiben und ausführen?
Ja. Jede Competitive Programming Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- sorted() und die key-Funktion
- Nach mehreren Feldern sortieren
- Benutzerdefinierte Reihenfolge mit functools.cmp_to_key
- Warum Sortieren Lösungen ermöglicht