Hallo zusammen,
wie funktioniert das bei sort() mit der Angabe eines keys?
Könnt ihr mir da mal ein paar einfache Beispiele zeigen, bitte?
Vielen Dank im Voraus,
rolgal_reloaded
Liste, sort(key=?)
`key` muss eine Funktion sein, die ein Listenelement bekommt und einen Schlüssel zum Sortieren zurückgibt. Ganz einfaches Beispiel:
Einmal wird nach dem ersten Element in den Tupeln sortiert, das andere mal nach dem zweiten Element.
In der Funktion kann man natürlich auch kompliziertere Sachen anstellen. Zum Beispiel wenn man eine Liste mit Tupeln hat, die Koordinaten darstellen, könnte man sie, mit der entsprechenden Berechnung, nach der Entfernung zu einem bestimmten Punkt sortieren lassen.
Bevor es dieses Argument gab, hat man die Funktionalität von Hand implementiert. Ungefähr so:
Code: Alles auswählen
In [43]: a = [(1, 'x'), (5, 'a'), (3, 'd')]
In [44]: a.sort(key=lambda x: x[0])
In [45]: a
Out[45]: [(1, 'x'), (3, 'd'), (5, 'a')]
In [46]: a.sort(key=lambda x: x[1])
In [47]: a
Out[47]: [(5, 'a'), (3, 'd'), (1, 'x')]
In der Funktion kann man natürlich auch kompliziertere Sachen anstellen. Zum Beispiel wenn man eine Liste mit Tupeln hat, die Koordinaten darstellen, könnte man sie, mit der entsprechenden Berechnung, nach der Entfernung zu einem bestimmten Punkt sortieren lassen.
Bevor es dieses Argument gab, hat man die Funktionalität von Hand implementiert. Ungefähr so:
Code: Alles auswählen
def sorted_(iterable, key):
result = [((key(item), item) for item in iterable]
result.sort()
return [item for dummy, item in result]
-
- User
- Beiträge: 312
- Registriert: Dienstag 24. Oktober 2006, 19:31
@BlackJack
Ich habe deine Anwendung von sort mit key in deinem Beispiel nicht übersehen
Jetzt ist aber noch einiges klarer
LG
r_r
Ich habe deine Anwendung von sort mit key in deinem Beispiel nicht übersehen
Jetzt ist aber noch einiges klarer
LG
r_r