Heim > Backend-Entwicklung > Python-Tutorial > Wie kann Python eine natürliche String-Sortierung effizient durchführen?

Wie kann Python eine natürliche String-Sortierung effizient durchführen?

Mary-Kate Olsen
Freigeben: 2025-01-04 00:57:40
Original
462 Leute haben es durchsucht

How Can Python Efficiently Perform Natural String Sorting?

Natürliche Sortierung in Strings

Problemstellung

Das lexikografische Sortieren von Strings führt nicht immer zur gewünschten Reihenfolge. Beispielsweise können Listen mit numerischen Werten nach Ziffern statt nach ganzen Zahlen sortiert werden. Dieses Problem ist auf den Standard-Sortiermechanismus zurückzuführen, der jedes Zeichen unabhängig behandelt.

Eingebaute Funktion

Obwohl Python keine integrierte Funktion speziell für Natural bereitstellt Bei der String-Sortierung gibt es Bibliotheken von Drittanbietern, die dieses Problem beheben können. Eine solche Bibliothek ist Natsort, die verschiedene Methoden zum Durchführen einer natürlichen Sortierung bietet.

Natsort-Bibliothek

Natsort bietet zwei Hauptansätze für eine natürliche Sortierung: die Verwendung einer Sortierfunktion oder einer Sortierschlüssel.

Sortierfunktion

Zur Nutzung der Wenn Sie die Sortierfunktion natsort verwenden, importieren Sie sie zunächst wie folgt:

from natsort import natsorted
Nach dem Login kopieren

Sie können dann eine Liste von Zeichenfolgen mit dieser Funktion sortieren:

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

Alternativ können Sie einen Algorithmus angeben, der ignoriert werden soll Groß-/Kleinschreibung beachten:

sorted_list = natsorted(x, alg=ns.IGNORECASE)
Nach dem Login kopieren

Sortierschlüssel

Wenn Sie Wenn Sie eine Liste von Zeichenfolgen mithilfe eines Sortierschlüssels sortieren müssen, importieren Sie Folgendes:

from natsort import natsort_keygen
Nach dem Login kopieren

Das Erstellen eines Sortierschlüssels erfordert die Angabe einer Funktion zum Extrahieren des Schlüssels aus jeder Zeichenfolge. Dies wird normalerweise verwendet, wenn die Zeichenfolgen eingebettet sind Daten. Zum Beispiel:

keygen = natsort_keygen(key=lambda y: y.lower())
sorted_list = sorted(l1, key=keygen)
Nach dem Login kopieren

Andere Optionen

Für komplexere natürliche Sortierszenarien bietet die Natsort-Bibliothek zusätzliche Funktionen und Anpassungsoptionen. Weitere Einzelheiten entnehmen Sie bitte der Dokumentation der Bibliothek. Darüber hinaus bietet natsort ab Version 7.1.0 eine os_sorted-Funktion zum Sortieren von Zeichenfolgen in der Reihenfolge des lokalen Dateisystembrowsers.

Das obige ist der detaillierte Inhalt vonWie kann Python eine natürliche String-Sortierung effizient durchführen?. 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