Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich eine Liste sortieren und gleichzeitig die parallele Reihenfolge in einer anderen beibehalten?

Wie kann ich eine Liste sortieren und gleichzeitig die parallele Reihenfolge in einer anderen beibehalten?

Mary-Kate Olsen
Freigeben: 2024-12-07 15:03:15
Original
135 Leute haben es durchsucht

How Can I Sort One List While Maintaining Parallel Order in Another?

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage