Dies sind die logischen Schritte, die ich auf meiner Liste von Listen durchführen muss
%Vor%Sortieren Sie die Liste der Listen so, dass die Ausgabe ungefähr wie
aussieht %Vor%nehmen die Koordinaten der sortierten Elemente in der ursprünglichen Liste, die in diesem Fall als Ausgabe
produzieren sollte %Vor% Ich habe versucht, sort, sorted
und argwhere
auf verschiedene Arten zu verwenden, aber ich bekomme keine vernünftigen Ergebnisse, ich denke zuerst, weil sort
und sorted
eine Liste nach nur einer Achse gleichzeitig sortieren können
Dieser Code funktioniert für eine Liste von Listen. Die internen Listen müssen nicht gleich lang sein.
Auf jeder Ebene durchlaufen wir eine Liste mit enumerate
, um das Listenelement und seinen Index zu erhalten. Auf der obersten Ebene ist jedes Element eine andere Liste, und die innere Schleife iteriert jede dieser Listen, um ihre Indizes und Werte abzurufen und die Indizes (als Tupel) in einem Tupel zu speichern, das auch den Wert enthält. Wir sortieren dann die resultierende Tupelliste ( b
) nach den Werten und teilen sie dann mit zip
in ein Tupel aller Indizes und ein Tupel der Werte auf.
Ausgabe
%Vor%Erstellen Sie ein Wörterbuch mit den Schlüsseln als die tatsächlichen Koordinaten und die Werte als die Zahlen selbst, wie dieses
%Vor% Sortieren Sie nun die Schlüssel (Koordinaten) von positions
basierend auf ihren Werten, wie dieser