Hallo Liebes Forum,
ich hab ein kleines Problem, ich will eine Liste in der immer 2 weitere Objekte eine Liste ergeben nach Zahlen sortiert werden,
[('9975', ['Finn']), ('32177', ['Test']), ('901428', ['Finn']), ('10347', ['Finn'])]
so sieht die Liste aus, und jetzt soll es halt sortiert werden, also das dann die größte Zahl mit seinem Namen steht, dann die zweitgrößte etc...
hat jemand eine Lösung?
mfg
Listen sortieren
@Luecx: Dafür ist die `sort()`-Methode auf Listen da, oder die `sorted()`-Funktion wenn man die originale Liste nicht verändern möchte.
Da die Zahlen als Zeichenketten vorliegen kann man sie nicht einfach nur mit ``sort()`` sortieren, sondern muss noch als `key`-Argument eine Funktion übergeben die aus einem Element der Liste einen Sortierschlüssel berechnet. Also zum Beispiel das erste Element in einem Listenelement in eine Zahl wandelt und zurück gibt. Da absteigend sortiert werden soll, muss man noch das `reverse`-Argument von `sort()` bemühen.
Da die Zahlen als Zeichenketten vorliegen kann man sie nicht einfach nur mit ``sort()`` sortieren, sondern muss noch als `key`-Argument eine Funktion übergeben die aus einem Element der Liste einen Sortierschlüssel berechnet. Also zum Beispiel das erste Element in einem Listenelement in eine Zahl wandelt und zurück gibt. Da absteigend sortiert werden soll, muss man noch das `reverse`-Argument von `sort()` bemühen.
BlackJack hat geschrieben:@Luecx: Dafür ist die `sort()`-Methode auf Listen da, oder die `sorted()`-Funktion wenn man die originale Liste nicht verändern möchte.
Da die Zahlen als Zeichenketten vorliegen kann man sie nicht einfach nur mit ``sort()`` sortieren, sondern muss noch als `key`-Argument eine Funktion übergeben die aus einem Element der Liste einen Sortierschlüssel berechnet. Also zum Beispiel das erste Element in einem Listenelement in eine Zahl wandelt und zurück gibt. Da absteigend sortiert werden soll, muss man noch das `reverse`-Argument von `sort()` bemühen.
ehhmm. ich bin grad erst dabei das ganze mit key argumenten uns so zu lernen... wie genau geht das? :S
@Luecx: Das ist eine Funktion die ein Argument bekommt und zwar ein Element aus der Liste die sortiert werden soll. Und diese Funktion muss einen Wert für dieses Element zurückgeben nach dem es dann im Ergebnis sortiert werden soll. In Deinem Beispiel soll die Position eines Elements von der ersten ”Zahl” im Tupel abhängen, also ist das der Wert den die Funktion zurückgeben sollte.
Code: Alles auswählen
data.sort(key=lambda x: int(x[0]))
achsooo vielen dankBlackJack hat geschrieben:@Luecx: Das ist eine Funktion die ein Argument bekommt und zwar ein Element aus der Liste die sortiert werden soll. Und diese Funktion muss einen Wert für dieses Element zurückgeben nach dem es dann im Ergebnis sortiert werden soll. In Deinem Beispiel soll die Position eines Elements von der ersten ”Zahl” im Tupel abhängen, also ist das der Wert den die Funktion zurückgeben sollte.Code: Alles auswählen
data.sort(key=lambda x: int(x[0]))