Sortieren mit Lambda in Python
In Python stehen die Funktionen sorted()
und sort()
zum Sortieren einer Liste zur Verfügung.
Mit diesen Funktionen können wir die Liste in der gewünschten Reihenfolge sortieren. Standardmäßig können wir die Liste in absteigender oder aufsteigender Reihenfolge sortieren.
Wir können in diesen Funktionen auch einen Parameter verwenden, nämlich den Parameter key
. Es ermöglicht uns, unsere eigene Sortierreihenfolge zu erstellen. In diesem Parameter können wir die Funktionen lambda
verwenden, um unsere eigene einzeilige Funktion zu erstellen.
Beispielsweise,
lst = ["id01", "id10", "id02", "id12", "id03", "id13"]
lst_sorted = sorted(lst, key=lambda x: int(x[2:]))
print(lst_sorted)
Ausgabe:
['id01', 'id02', 'id03', 'id10', 'id12', 'id13']
Im obigen Beispiel haben wir eine Liste von IDs, bei denen jeder Nummer die Buchstaben id
vorangestellt sind. Im Parameter key
geben wir eine Funktion lambda
an, die angibt, dass die ersten beiden Zeichen (id
) ignoriert und die Liste sortiert werden müssen.
Es gibt auch andere Möglichkeiten, wie wir die lambda
-Funktionen zum Sortieren verwenden können.
Beispielsweise,
lst = [("Mark", 1), ("Jack", 5), ("Jake", 7), ("Sam", 3)]
lst_sorted = sorted(lst, key=lambda x: x[1])
print(lst_sorted)
Ausgabe:
[('Mark', 1), ('Sam', 3), ('Jack', 5), ('Jake', 7)]
Im obigen Beispiel haben wir eine Liste von Tupeln. Das Tupel besteht aus einem Namen und einer Nummer. In der Funktion lambda
geben wir die zu sortierende Funktion basierend auf dem zweiten Element des Tupels an, dh der Zahl.
Beachten Sie, dass wir die Reihenfolge mit dem Parameter reverse
in absteigend ändern und auf True
setzen können.
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