So sortieren Sie Listen in Python

So sortieren Sie Listen in Python

Dieser Artikel behandelt eine Anleitung zum Sortieren von Listen in Python. Ein Python -List -Objekt ist eine Sammlung eines oder mehrerer Kommas getrennter Elemente. Es ist ein „iterierbares“ Objekt und auf seine Elemente kann durch Iterieren der Liste mithilfe von Schleifenanweisungen und anderen Ausdrücken zugegriffen werden. Sie können eine Python -Liste mit "Sortier" und "sortierten" Methoden sortieren. Beide werden im Artikel erklärt. Alle Codeproben in diesem Artikel werden mit Python 3 getestet.9.5 in Ubuntu 21.04.

Sortiermethode

Die Sortiermethode sortiert eine Liste "In-Place". Mit anderen Worten, es wird das Listenobjekt ändern, das Sie sortieren und sein Element neu ordnen werden. Wenn Sie die ursprüngliche Liste nicht benötigen und die Liste nicht ausmacht, die die Reihenfolge der Elemente „In-Place“ ändert, ist dies die effizienteste Methode in Python, um eine Liste zu sortieren. Betrachten Sie dieses Beispiel:

L = [2, 8, 6, 4]
l.Sortieren()
Druck (l)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

[2, 4, 6, 8]

Die erste Anweisung im Code -Beispiel definiert eine Liste. Als nächstes wird die "Sortier" -Methode auf die Liste aufgerufen. Wenn Sie die Liste drucken, können Sie feststellen, dass die Bestellung der Originalliste geändert wurde.

Standardmäßig sortiert Python eine Liste in aufsteigender Reihenfolge. Wenn Sie eine Liste in absteigender Reihenfolge sortieren möchten, verwenden Sie die Methode „Reverse“, wie im folgenden Code -Beispiel gezeigt:

L = [2, 8, 6, 4]
l.Sortieren()
l.umkehren()
Druck (l)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

[8, 6, 4, 2]

Die Methode „Reverse“ ändert auch eine Python-Liste „In-Place“, ohne eine neue Liste zu erstellen.

Wenn Ihre Liste Stringelemente enthält. Schauen Sie sich das Code -Beispiel unten an:

L = ["S", "a", "Z", "4", "#"]
l.Sortieren()
Druck (l)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['#', '4', 'a', 's', 'z']

Sie können auch die umgekehrte Methode in einer Liste verwenden, die Stringelemente enthält.

L = ["S", "a", "Z", "4", "#"]
l.Sortieren()
l.umkehren()
Druck (l)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['z', 's', 'a', '4', '#']

Sortierte Methode

Die sortierte Methode sortiert auch eine Python -Liste auf die gleiche Weise wie die "Sortier" -Methode. Anstatt die ursprüngliche Liste zu ändern, gibt sie jedoch eine neue Liste zurück, damit Ihre ursprüngliche Liste unberührt bleibt, falls Sie sie wiederverwenden möchten. Betrachten Sie den folgenden Code:

list1 = ["s", "a", "z", "4", "#"]
list2 = sortiert (list1)
print (list1, list2)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['s', 'a', 'z', '4', '#'] ['#', '4', 'a', 'S', 'Z']

Sie können in der Ausgabe sehen, dass "List1" intakt ist und "List2" jetzt Elemente sortiert hat. Sie können auch die "Reverse" -Methode auf "List2" verwenden, um die Bestellmethode zu ändern.

Umgekehrtes Argument

Sie können das Argument „Reverse“ als Alternative zur Umkehrfunktion sowohl in "Sortier" als auch in "Sortier" -Methoden verwenden, um eine sortierte Liste in absteigender Reihenfolge zu erhalten. Liefern Sie es einfach einen „wahren“ Wert, um die Reihenfolge der Sortierung zu ändern:

list1 = ["s", "a", "z", "4", "#"]
list2 = sortiert (list1, reverse = true)
print (list1, list2)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['s', 'a', 'z', '4', '#'] ['z', 's', 'a', '4', '#']

Verwenden der Schlüsselfunktion, um Ihre eigene Logik für die Sortierung von Elementen einer Liste anzugeben

Sowohl in Methoden "Sortier" als auch in "sortierten" können Sie ein zusätzliches "Schlüsselargument" angeben, das eine aufrufbare Funktion als Wert annimmt. Dire diesem Schlüsselargument können eine vorhandene Funktion aus eingebauten Pythonmodulen zugewiesen werden oder Sie können Ihre eigene Funktion mit benutzerdefinierter Logik liefern. Schauen Sie sich das Code -Beispiel unten an:

list1 = ["abcde", "xyz", "ijkl"]
list2 = sortiert (list1, key = len)
print (list1, list2)
Liste1.sortieren (key = len)
drucken (Liste1)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['Abcde', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'abcde']
['xyz', 'ijkl', 'abcde']

Das Code -Beispiel zeigt die Verwendung von „Schlüsselargument“ sowohl in "sortierten" als auch in "Sortier" -Methoden. Die dazu gelieferte Funktion heißt „Len“, die die Länge eines String -Objekts oder eines iterablen bestimmt. Die Funktion oder die Erfassung sollte ursprünglich nur ein Argument erfolgen. Sie weisen es dem Argument „Schlüssel“ zu, ohne Klammern zu verwenden. Die an das Argument „Schlüssel“ gelieferte Callable -Funktion wird auf jedes Element der Liste aufgerufen. Die von dieser Anrufablenkungsmethode zurückgegebenen Werte werden dann als Schlüssel zum Sortieren der Liste verwendet. Daher liefert die Funktion „Len“ dem „Schlüssel“ -Sort -Sortselement. Wie bereits erwähnt, können Sie immer die „Reverse“ -Methode verwenden, um die Sortiermethode umzukehren.

Sie können auch Ihre eigene benutzerdefinierte Funktion oder eine One-Liner-Lambda-Funktionen verwenden, die den Wert eines einzelnen Ausdrucks zurückgeben. Schauen Sie sich das Code -Beispiel unten an, in dem eine Liste die aktuellen Inventar der Obstkisten enthält:

List1 = [("Mango", 99), ("Orange", 51), ("Banana", 76)]
Liste1.sort (key = lambda Inventar: Inventar [1])
drucken (Liste1)

Nachdem Sie das obige Code -Beispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

[('Orange', 51), ('Banana', 76), ('Mango', 99)]

Die Funktion „Lambda“ wird mit einem Argument „Inventar“ geliefert, das jedes Element der Liste in Tupelform ist. Anschließend gibt es das zweite Element jedes Tupels als Schlüssel zurück (in Index 1). Die Sortierfunktion sortiert dann alle Tupel nach ihrem zweiten Element in aufsteigender Reihenfolge. Sie können auch das Argument „Reverse“ oder das „Reverse“ -Argument für das Endergebnis verwenden, um die Reihenfolge der Sortierung umzukehren.

Abschluss

Dies sind einige Möglichkeiten, wie Sie den Inhalt einer iterbaren Liste in Python sortieren können. Mit dem „Schlüsselargument“ können Sie Ihre eigene benutzerdefinierte Sortierlogik schreiben, die für Anwendungen geeignet ist, die möglicherweise unterschiedliche Anforderungen haben als die integrierten Sortiermethoden.