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
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())
Alternativ können Sie einen Algorithmus angeben, der ignoriert werden soll Groß-/Kleinschreibung beachten:
sorted_list = natsorted(x, alg=ns.IGNORECASE)
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
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)
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!