Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich in Python mehrere Listen unter Beibehaltung der Ausrichtung sortieren?
Beim Arbeiten mit mehreren parallelen Listen kann es erforderlich sein, eine Liste zu sortieren und gleichzeitig die entsprechende Reihenfolge der Elemente in den anderen Listen beizubehalten. Um dies zu erreichen, stellen wir zwei klassische Ansätze vor.
Diese Technik vereinfacht die Aufgabe mithilfe der in Python integrierten Zip-Funktion, die Elemente aus mehreren Listen kombiniert in Tupel:
list1 = [3, 2, 4, 1, 1] list2 = ['three', 'two', 'four', 'one', 'one2'] list1, list2 = zip(*sorted(zip(list1, list2)))
Nachdem die Tupel nach dem ersten Element (list1) sortiert wurden, wird die Reihenfolge auf beide angewendet Listen.
Für eine höhere Geschwindigkeit können Sie einen In-Place-Sortierungsansatz verwenden:
tups = zip(list1, list2) tups.sort() result1, result2 = zip(*tups)
Dieser Ansatz übertrifft in der Regel die einzeilige Version für kleine Listen, wird aber aufgrund der optimierten Zip-Routinen von Python für größere Listen vergleichbar.
list1 = [3, 2, 4, 1, 1] list2 = [num * num for num in list1] result1, result2 = zip(*sorted(zip(list1, list2), key=lambda x: x[0]))
Das obige ist der detaillierte Inhalt vonWie kann ich in Python mehrere Listen unter Beibehaltung der Ausrichtung sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!