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
Patricia ArquetteOriginal
2024-12-26 11:17:09444Durchsuche

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']

Sortieren dieser Liste mit sorted() ergibt Folgendes:

['Elm11', 'Elm12', 'Elm2', 'elm0', 'elm1', 'elm10', 'elm13', 'elm9']

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

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())

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

['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']

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)

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!

Stellungnahme:
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