Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich eine natürliche String-Sortierung in Python erreichen?

Wie kann ich eine natürliche String-Sortierung in Python erreichen?

Patricia Arquette
Freigeben: 2024-12-26 11:17:09
Original
451 Leute haben es durchsucht

How Can I Achieve Natural String Sorting in Python?

Natürliche String-Sortierung in Python

In Python führt das alphabetische Sortieren einer Liste von Strings mit der Standardfunktion sorted() möglicherweise nicht zum gewünschten Ergebnis „natürliche“ Ordnung. Dies liegt daran, dass sorted() Zeichenfolgen als einzelne Zeichen behandelt, was zu einer unnatürlichen Reihenfolge führt.

Betrachten Sie beispielsweise die folgende Liste von Zeichenfolgen:

['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
Nach dem Login kopieren
Nach dem Login kopieren

Sortieren dieser Liste mit sorted() ergibt Folgendes:

['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
Nach dem Login kopieren

Dies ist nicht die natürliche Sortierreihenfolge, da Zahlen nach Buchstaben alphabetisch sortiert und nicht als Teil der behandelt werden Zahl.

Um eine natürliche Zeichenfolgensortierung zu erreichen, können Sie die Natsort-Bibliothek verwenden. Natsort bietet Funktionen, die Zeichenfolgen intuitiver sortieren und dabei die natürliche Reihenfolge von Zahlen beibehalten.

Sie können Natsort mit pip installieren:

pip install natsort
Nach dem Login kopieren

Um eine natürliche Sortierung für das Gegebene durchzuführen Liste verwenden Sie die Funktion natsorted():

from natsort import natsorted

x = ['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']
natsorted(x, key=lambda y: y.lower())
Nach dem Login kopieren

Dadurch wird die gewünschte natürliche Sortierung erzeugt Reihenfolge:

['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
Nach dem Login kopieren
Nach dem Login kopieren

Die Funktion natsort_keygen() kann auch zum Erstellen eines Sortierschlüssels verwendet werden:

from natsort import natsort_keygen

natsort_key = natsort_keygen(key=lambda y: y.lower())
list.sort(key=natsort_key)
Nach dem Login kopieren

Dadurch wird die Liste auf die gleiche Weise wie natsorted() sortiert.

Zusätzlich zu natsorted() und natsort_keygen() bietet natsort auch os_sorted() und os_sort_keygen() Funktionen. Mit diesen Funktionen können Sie Listen nach dem Sortierverhalten des Datei-Explorers Ihres Betriebssystems sortieren, das vom Standardverhalten von natsort abweichen kann.

Das obige ist der detaillierte Inhalt vonWie kann ich eine natürliche String-Sortierung in Python erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage