Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich gleichzeitig eine Liste sortieren und eine andere umwandeln, um die Korrespondenz aufrechtzuerhalten?

Wie kann ich gleichzeitig eine Liste sortieren und eine andere umwandeln, um die Korrespondenz aufrechtzuerhalten?

Linda Hamilton
Linda HamiltonOriginal
2024-12-05 20:51:12217Durchsuche

How Can I Simultaneously Sort One List and Permute Another to Maintain Correspondence?

Gleichzeitiges Sortieren und Permutieren paralleler Listen

Problem:

Gegeben sind zwei Listen mit Elementen, bekannt als list1 und list2, Das Ziel besteht darin, die Elemente in Liste1 zu sortieren und gleichzeitig die Elemente in Liste2 neu anzuordnen, damit sie der Sortierreihenfolge von Liste1 entsprechen. Mit anderen Worten, wir möchten die Übereinstimmung zwischen den Elementen in beiden Listen aufrechterhalten.

Lösung:

Eine weit verbreitete Technik für dieses Problem ist das „Dekorieren, Sortieren“. , undecorate“ Idiom:

list1, list2 = zip(*sorted(zip(list1, list2)))

Dieser Code demonstriert Folgendes Schritte:

  1. zip(list1, list2) erstellt Paare entsprechender Elemente aus beiden Listen und „dekoriert“ effektiv jedes Element mit seinem Begleiter aus der anderen Liste.
  2. sorted(zip( list1, list2)) sortiert die Paare basierend auf dem ersten Element (aus list1).
  3. zip(*...) „entdekoriert“ die sortierten Paare, Erzeugen der sortierten Liste1 und der passenden, permutierten Liste2.

Zusätzliche Überlegungen:

  • Die bereitgestellte Lösung interpretiert gleiche Elemente in Liste1 durch Vergleich ihrer entsprechenden Elemente in Liste2. Wenn dieser Vergleich unerwünscht oder rechenintensiv ist, sollten Sie die Verwendung der alternativen Tastenfunktion in Betracht ziehen:
result1, result2 = zip(*sorted(zip(list1, list2), key=lambda x: x[0]))
  • Der Umgang mit leeren Eingabelisten ist unerlässlich. Wenn Ihre Eingabelisten möglicherweise leer sind, stellen Sie sicher, dass Sie über eine entsprechende Fehlerbehandlung oder Sonderfälle verfügen, um Fehler zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie kann ich gleichzeitig eine Liste sortieren und eine andere umwandeln, um die Korrespondenz aufrechtzuerhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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