Python sort() erstes element der Liste
Ich habe eine Liste, die enthält nicht bestimmten Menge von Elemente, aber jedes erste element der verschachtelten Liste ist ein Bezeichner, möchte ich die id um die Liste zu Sortieren, um
list = [['D', 'F', 'E', 'D', 'F', 'D'],['A', 'F', 'E', 'C', 'F', 'E'],['C', 'E', 'E', 'F', 'E', 'E'],['B', 'F', 'E', 'D', 'F', 'F']]
Sortiert nach Ihrer
list = [['A', 'F', 'E', 'C', 'F', 'E'],['B', 'F', 'E', 'D', 'F', 'F'],['C', 'E', 'E', 'F', 'E', 'E'],['D', 'F', 'E', 'D', 'F', 'D']]
Ich verwende python 3.3.3
- Möchten Sie die Sortierung der Listen basiert auf dem ersten element in der Liste? Sie haben versucht, verwenden eine Schlüssel-Funktion für die Liste mit sort () - Methode?
- Ich habe eine Liste, die enthält nicht bestimmten Menge von Elemente, aber jedes erste element der verschachtelten Liste ist ein Bezeichner, möchte ich die id um die Liste zu Sortieren, um
- Als ich den Hinweis in meiner Antwort nicht überschreiben Sie den eingebauten Konstruktor
list
. stackoverflow.com/questions/21068315/...
InformationsquelleAutor DaveDave | 2014-01-11
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Python wird automatisch sortiert Listen von Listen das erste element. Zum Beispiel:
Den Sie verwenden möchten
.sort()
odersorted
:Beachten Sie auch, dass Ihre Liste braucht, Kommas zwischen den Elementen. Hier ist das Ergebnis für
sorted
:Wie Sie sehen können, ist das Letztgenannte Beispiel sortiert die Listen ohne Schlüssel-argument. Der ehemalige Beispiel kann als auch, aber Sie erwähnen, dass nur das erste element ist ein einmalige Kennung, so gibt es keine Möglichkeit zu sagen, was die sekundären Kriterien mögen für die Sortierung der Liste nach dem ersten element.
lists.sort(key = lambda x: x[0])
Stellen Sie sicher, dass Sie Kommas zwischen die einzelnen Liste in die größere Liste.
Im wesentlichen die gleiche wie die anderen, aber verwendet operator.itemgetter(),
Sollten Sie nicht überschreiben Sie die eingebaute Liste Konstruktor
list
verwenden Sie einen anderen Namen als wie dies:Sortieren Sie die Liste in Ort, verwenden Sie die
list.sort
Methode:Den built-in-Funktion,
sorted
, gibt eine neue Liste zurück, die ist etwas, das Sie nicht scheinen zu wollen. Es gibt eine neue Liste zurück, die, wenn Sie nicht mehr die alte Liste vergeudeten Platz im Speicher.Python wird automatisch sortiert auf das erste element. Es dann automatisch sortiert auf den zweiten, Dritten, und so weiter. Mit lambda als andere vorgeschlagen, würde bedeuten, Sie würde nur eine Art auf das erste element und die folgenden Elemente würden ignoriert.
Dies ist der Grund, warum die Art wird beschrieben, wie ein stabile Art
Verwenden Sie diese
UPDATE
Es funktioniert bei 2.7, aber nicht für Python 3.3