Ich habe eine Liste, die nicht bestimmte Menge an Elementen enthält, aber jedes erste Element der geschachtelten Liste ist ein Bezeichner, ich möchte diesen Bezeichner verwenden, um die Liste in der Reihenfolge
zu sortieren %Vor%Nach seiner Sortierung
%Vor%Ich benutze Python 3.3.3
Sie möchten .sort()
oder sorted
:
Beachten Sie auch, dass Ihre Liste Kommas zwischen ihren Elementen benötigt. Hier ist das Ergebnis für sorted
:
Wie Sie sehen, sortiert das letzte Beispiel die Listen ohne ein Schlüsselargument. Das vorherige Beispiel kann auch; aber Sie erwähnen, dass nur das erste Element ein eindeutiger Bezeichner ist, also gibt es keine Möglichkeit zu sagen, was das sekundäre Kriterium sein könnte, um die Liste über das erste Element hinaus zu sortieren.
Benutze dies
%Vor%UPDATE Es funktioniert für 2.7 aber nicht für Python 3.3
Sie sollten den eingebauten Listenkonstruktor list
nicht überschreiben und stattdessen einen anderen Namen verwenden:
Um die Liste an Ort und Stelle zu sortieren, verwenden Sie die Methode list.sort
:
Die integrierte Funktion, sorted
, gibt eine neue Liste zurück, was Sie anscheinend nicht tun wollten. Es gibt eine neue Liste zurück, die, wenn Sie die alte Liste nicht mehr benötigen, Speicherplatz im Speicher verschwenden würde.
Python sortiert automatisch das erste Element. Es sortiert dann automatisch nach dem zweiten, dritten und so weiter. Die Verwendung von Lambda, wie von anderen vorgeschlagen, würde bedeuten, dass Sie nur nach dem ersten Element sortieren würden und die folgenden Elemente ignoriert würden.
%Vor%Aus diesem Grund wird die Sortierung als stabile Sortierung
beschrieben %Vor%Tags und Links python list sorting python-3.3