Liste nach einer anderen Liste in Python sortieren
-
Verwenden Sie die Funktionen
zip()
undsorted()
, um die Liste basierend auf einer anderen Liste in Python zu sortieren -
Verwenden Sie das Modul
NumPy
, um die Liste basierend auf einer anderen Liste in Python zu sortieren -
Verwenden Sie
more_itertools.sort_together
, um die Liste basierend auf einer anderen Liste in Python zu sortieren
Wenn wir Listen sortieren, tun wir dies im Allgemeinen in aufsteigender oder absteigender Reihenfolge. Wir können eine Liste jedoch basierend auf der Reihenfolge einer anderen Liste in Python sortieren.
In diesem Artikel erfahren Sie, wie Sie eine bestimmte Liste basierend auf den Werten einer anderen Liste sortieren.
Verwenden Sie die Funktionen zip()
und sorted()
, um die Liste basierend auf einer anderen Liste in Python zu sortieren
In dieser Methode verwenden wir die Funktion zip()
, um ein drittes Objekt zu erstellen, indem wir die beiden gegebenen Listen kombinieren, von denen die erste sortiert werden muss und die zweite, von der die Sortierung abhängt.
Wir können dann die Funktion sorted()
verwenden, die die ersten Elemente jedes Paares der gegebenen Listen aus der sortierten und gezippten Liste extrahiert.
A = ["r", "s", "t", "u", "v", "w", "x", "y", "z"]
B = [0, 1, 1, 0, 1, 2, 2, 0, 1]
result_list = [i for _, i in sorted(zip(B, A))]
print(result_list)
Ausgabe:
['r', 'u', 'y', 's', 't', 'v', 'z', 'w', 'x']
Verwenden Sie das Modul NumPy
, um die Liste basierend auf einer anderen Liste in Python zu sortieren
Bei dieser Methode wandeln wir die Listen in NumPy
-Arrays um und wenden dann den Sortieralgorithmus auf die Listen an. Wir sortieren das Array, von dem die Sortierung abhängt, mit der Funktion argsort()
und verwenden dann diese Werte, um das zweite Array zu filtern.
Siehe das folgende Beispiel.
import numpy
A = ["r", "s", "t", "u", "v", "w", "x", "y", "z"]
B = [0, 1, 1, 0, 1, 2, 2, 0, 1]
A = numpy.array(A)
B = numpy.array(B)
inds = B.argsort()
sorted_a = A[B]
print(sorted_a)
Ausgabe:
['r' 's' 's' 'r' 's' 't' 't' 'r' 's']
Um die endgültigen Daten in einer Liste zu erhalten, verwenden Sie die Funktion tolist()
.
Verwenden Sie more_itertools.sort_together
, um die Liste basierend auf einer anderen Liste in Python zu sortieren
Das Modul more_itertools
ist eine Erweiterung des Moduls itertools
. Die Funktion sort_together
gibt die Eingabe-Iterables zusammen sortiert zurück, mit der Liste im Argument key_list
als Priorität für die Sortierung.
Zum Beispiel,
from more_itertools import sort_together
X = ["r", "s", "t", "u", "v", "w", "x", "y", "z"]
Y = [0, 1, 1, 0, 1, 2, 2, 0, 1]
s = sort_together([Y, X])[1]
print(list(s))
Ausgabe:
['r', 'u', 'y', 's', 't', 'v', 'z', 'w', 'x']
Wir müssen die Funktion list()
verwenden, um das Endergebnis als Liste zu erhalten.
Verwandter Artikel - Python List
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Duplikate aus Liste entfernen in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert