Python: Wie bestelle ich eine Liste?

8

Obs: Ich weiß, dass Listen in Python nicht durch die Reihenfolge festgelegt sind, aber denke, dass dies eine sein wird. Und ich benutze Python 2.4

Ich habe eine Liste, wie zum Beispiel diese:

%Vor%

Diese Variable mylist wird von einer Funktion erhalten, und die 'Reihenfolge' der zurückgegebenen Liste variiert. Manchmal wird es wie im Beispiel sein. Manchmal wird der "Bericht" vor "Artikel" usw. stehen.

Ich habe eine feste Reihenfolge, die ich auf dieser Liste haben möchte (und ist nicht alphabetisch).

Nehmen wir an, meine feste Bestellung lautet: 'Bericht', 'Artikel', 'Buch', ...

Also, was ich will, ist das: egal welche Reihenfolge 'Meine Liste' instanziiert wird, ich möchte sie neu anordnen, indem ich 'Bericht' auf der Vorderseite, 'Artikel' auf der zweiten Seite, etc ...

belasse

Was ist der beste Ansatz, um meine Liste neu anzuordnen (indem ich das erste Element des Tupel jedes Elements auf der Liste nehme), indem ich meine "benutzerdefinierte" Reihenfolge verwende?

Antwort :

Ich bin damit gelandet:

Meine Liste wurde zu einer Liste von Diktaten, wie folgt:

%Vor%

Jedes Diktat hat eine ID, die sortiert werden muss.

Speichern der richtigen Reihenfolge in einer ListeAktivieren der korrekten Reihenfolge in einer Liste:

%Vor%

und machen:

%Vor%     
Gabriel L. Oliveira 02.09.2010, 06:36
quelle

4 Antworten

13

Sie könnten ein Dictionary verwenden, das jedes erste Element auf sein "Gewicht" abbildet und dann dieses Wörterbuch in einer Sortierfunktion überprüft.

Etwas wie:

%Vor%     
Joril 02.09.2010, 06:41
quelle
6

Sie könnten ein Wörterbuch verwenden, mit dem Sie auf "Buch", "Artikel" usw. zugreifen können, ohne sich um die Reihenfolge kümmern zu müssen. Ich würde die Daten aus dieser Liste in ein Diktat schreiben, das wie folgt aussieht:

%Vor%

Wenn Sie Ihre Liste wirklich in der von Ihnen beschriebenen Weise sortieren möchten, können Sie list.sort mit einer Schlüsselfunktion verwenden, die Ihre bestimmte Sortierreihenfolge darstellt ( Dokumentation ). Sie benötigen die Schlüsselfunktion, da Sie nur auf das erste Element zugreifen müssen und Ihre Sortierreihenfolge auch nicht alphabetisch ist.

    
Mad Scientist 02.09.2010 06:38
quelle
1

Allgemeiner könnte es Elemente der Liste geben, die nicht in der angegebenen festen Reihenfolge sind. Dies wird nach der Regel geordnet, aber lassen Sie die relative Reihenfolge von allem außerhalb der Regel allein:

%Vor%     
CPBL 28.02.2018 10:28
quelle
0

Auf diese Weise wird ein Diktat erstellt und die Elemente in der Reihenfolge abgerufen

%Vor%

Auf diese Weise werden Sortiervorgänge mit O (1) Suchvorgängen für die Reihenfolge

verwendet %Vor%     
John La Rooy 02.09.2010 07:22
quelle

Tags und Links