So sortieren Sie Listen in Python

How Sort Lists Python



Dieser Artikel behandelt eine Anleitung zum Sortieren von Listen in Python. Ein Python-Listenobjekt ist eine Sammlung von einem oder mehreren durch Kommas getrennten Elementen. Es ist ein iterierbares Objekt, und auf seine Elemente kann zugegriffen werden, indem die Liste mit Schleifenanweisungen und anderen Ausdrücken durchlaufen wird. Sie können eine Python-Liste mit sort- und sortierten Methoden sortieren, beide werden im Artikel erklärt. Alle Codebeispiele in diesem Artikel wurden mit Python 3.9.5 in Ubuntu 21.04 getestet.

Sortiermethode

Die Sortiermethode sortiert eine Liste direkt. Mit anderen Worten, es wird das Listenobjekt ändern, das Sie sortieren und sein Element neu anordnen. Wenn Sie die ursprüngliche Liste nicht benötigen und es Ihnen nichts ausmacht, dass die Liste ihre Reihenfolge der Elemente ändert, ist dies die effizienteste Methode in Python, um eine Liste zu sortieren. Betrachten Sie dieses Beispiel:







das= [2, 8, 6, 4]

das.Sortieren()

drucken (das)

Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:



[2, 4, 6, 8]

Die erste Anweisung im Codebeispiel definiert eine Liste. Als nächstes wird die Methode sort für die Liste aufgerufen. Wenn Sie die Liste drucken, können Sie sehen, dass die Reihenfolge der ursprünglichen Liste 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 umgekehrte Methode, wie im folgenden Codebeispiel gezeigt:





das= [2, 8, 6, 4]

das.Sortieren()

das.umkehren()

drucken (das)

Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

[8, 6, 4, 2]

Die umgekehrte Methode ändert auch eine Python-Liste direkt, ohne eine neue Liste zu erstellen.



Wenn Ihre Liste Zeichenfolgenelemente enthält, wird sie beim Aufrufen der Sortiermethode alphabetisch sortiert, wobei Symbole und Zahlen zuerst geordnet werden. Sehen Sie sich das folgende Codebeispiel an:

das= ['S', 'zu', 'Mit', '4', '#']

das.Sortieren()
drucken (das)

Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['#', '4', 'zu', 'S', 'Mit']

Sie können auch die umgekehrte Methode für eine Liste verwenden, die Zeichenfolgenelemente enthält.

das= ['S', 'zu', 'Mit', '4', '#']

das.Sortieren()

das.umkehren()

drucken (das)

Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['Mit', 'S', 'zu', '4', '#']

Sortierte Methode

Die Methode sorted sortiert auch eine Python-Liste auf die gleiche Weise wie die Methode sort. Anstatt jedoch die ursprüngliche Liste zu ändern, wird eine neue Liste zurückgegeben, sodass Ihre ursprüngliche Liste unangetastet bleibt, falls Sie sie wiederverwenden möchten. Betrachten Sie den folgenden Code:

Liste1= ['S', 'zu', 'Mit', '4', '#']

Liste2= sortiert(Liste1)

drucken (Liste1,Liste2)

Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['S', 'zu', 'Mit', '4', '#'] ['#', '4', 'zu', 'S', 'Mit']

In der Ausgabe sehen Sie, dass list1 intakt ist und list2 jetzt sortierte Elemente hat. Sie können auch die umgekehrte Methode für list2 verwenden, um die Sortiermethode zu ändern.

Umgekehrtes Argument

Sie können das reverse-Argument als Alternative zur reverse-Funktion sowohl in sort- als auch in sort-Methoden verwenden, um eine sortierte Liste in absteigender Reihenfolge zu erhalten. Geben Sie einfach einen True-Wert an, um die Sortierreihenfolge zu ändern:

Liste1= ['S', 'zu', 'Mit', '4', '#']

Liste2= sortiert(Liste1,umkehren=Wahr)

drucken (Liste1,Liste2)

Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['S', 'zu', 'Mit', '4', '#'] ['Mit', 'S', 'zu', '4', '#']

Verwenden der Tastenfunktion zum Festlegen Ihrer eigenen Logik zum Sortieren von Elementen einer Liste

Sowohl in sort- als auch in sortierten Methoden können Sie ein zusätzliches Schlüsselargument angeben, das eine aufrufbare Funktion als Wert annimmt. Diesem Schlüsselargument kann eine vorhandene Funktion aus integrierten Python-Modulen zugewiesen werden oder Sie können Ihre eigene Funktion mit benutzerdefinierter Logik bereitstellen. Sehen Sie sich das folgende Codebeispiel an:

Liste1= ['abcd', 'xyz', 'ijkl']

Liste2= sortiert(Liste1,Schlüssel=len)

drucken (Liste1,Liste2)

Liste1.Sortieren(Schlüssel=len)

drucken (Liste1)

Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

['abcd', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'abcd']

['xyz', 'ijkl', 'abcd']

Das Codebeispiel veranschaulicht die Verwendung des Schlüsselarguments in sortierten und sort-Methoden. Die ihm übergebene Funktion heißt len, die die Länge eines String-Objekts oder eines Iterables bestimmt. Die Funktion oder das Callable sollte ursprünglich nur ein Argument annehmen. Sie weisen es dem Schlüsselargument zu, ohne geschweifte Klammern zu verwenden. Die an das Schlüsselargument gelieferte aufrufbare Funktion wird für jedes Element der Liste aufgerufen. Die von dieser aufrufbaren Methode zurückgegebenen Werte werden dann als Schlüssel zum Sortieren der Liste verwendet. Daher sortiert das Angeben der len-Funktion an das Schlüsselargument die Elemente einer Liste in der Reihenfolge ihrer Länge, d. h. von der kürzesten zur längsten. Wie bereits erwähnt, können Sie die Sortiermethode jederzeit mit der umgekehrten Methode umkehren.

Sie können auch Ihre eigene benutzerdefinierte Funktion oder einzeilige Lambda-Funktionen verwenden, die den Wert eines einzelnen Ausdrucks zurückgeben. Sehen Sie sich das folgende Codebeispiel an, in dem eine Liste Tupel des aktuellen Bestands an Obstkisten enthält:

Liste1= [('Mango', 99), ('Orange', 51), ('Banane', 76)]

Liste1.Sortieren(Schlüssel=LambdaInventar: Inventar[1])

drucken (Liste1)

Nachdem Sie das obige Codebeispiel ausgeführt haben, sollten Sie die folgende Ausgabe erhalten:

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

Die Lambda-Funktion wird mit einem Argumentinventar geliefert, das jedes Element der Liste in Tupelform darstellt. Es gibt dann das zweite Element jedes Tupels als Schlüssel (bei Index 1) zurück. Die Sortierfunktion sortiert dann alle Tupel nach ihrem zweiten Element in aufsteigender Reihenfolge. Sie können auch die Umkehrfunktion oder das Umkehrargument für das Endergebnis verwenden, um die Sortierreihenfolge umzukehren.

Abschluss

Dies sind einige Möglichkeiten, mit denen Sie den Inhalt einer iterierbaren Liste in Python sortieren können. Mit dem Schlüsselargument können Sie Ihre eigene benutzerdefinierte Sortierlogik schreiben, die sich für Anwendungen eignet, die möglicherweise andere Anforderungen als die integrierten Sortiermethoden haben.