Sortieren paralleler Listen mit automatischer Permutation
Problemstellung
Gegeben sind zwei parallele Listen beliebiger Um Datentypen zu analysieren, entwickeln Sie eine Methode, um eine Liste zu sortieren und gleichzeitig die andere Liste in derselben neu anzuordnen bestellen.
Lösung
Ein gängiger Ansatz zur Lösung dieses Problems ist die Redewendung „dekorieren, sortieren, entdekorieren“. Mit der in Python integrierten Zip-Funktion können wir die Elemente beider Listen effizient zu Tupeln kombinieren und diese Tupel basierend auf den Werten aus der ersten Liste sortieren. Diese sortierte Liste von Tupeln kann dann „undekoriert“ werden, um die gewünschten sortierten Listen zu erhalten.
Implementierung:
list1, list2 = zip(*sorted(zip(list1, list2))) # Alternatively, for in-place sorting: # tups = zip(list1, list2) # tups.sort() # list1, list2 = zip(*tups)
Vorteile und Leistung
Dieser Ansatz legt Wert auf Einfachheit und Prägnanz, insbesondere bei der Verwendung der Zip-Funktion. Bei kleinen Listen könnte eine In-Place-Version jedoch etwas schneller sein:
tups = zip(list1, list2) tups.sort() zip(*tups)
Bei größeren Listen könnte die einzeilige Version in bestimmten Situationen eine bessere Leistung erbringen.
Alternative Ansätze
Wie in den Kommentaren erwähnt, gibt es auch andere Ansätze, wie etwa das Sortieren von Indizes oder das Bereitstellen einer benutzerdefinierten Schlüsselfunktion für den Sortieralgorithmus. Diese Alternativen können geeignet sein, wenn der direkte Vergleich von Elementen in der zweiten Liste problematisch ist.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste sortieren und gleichzeitig die parallele Reihenfolge in einer anderen beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!