String-Nummern numerisch sortieren
Wenn es sich um eine Liste von Strings handelt, die numerische Werte darstellen, kann es auf den ersten Blick so erscheinen, sie nach ihrem tatsächlichen Wert zu sortieren eine unkomplizierte Aufgabe. Allerdings kann die Standardfunktion sort() in Python unerwartete Ergebnisse liefern.
Das Problem entsteht, weil die Funktion sort() die Zeichenfolgen lexikografisch vergleicht, d. h. sie alphabetisch statt numerisch sortiert. Um dieses Problem zu lösen, ist es wichtig, die Zeichenfolgen vor der Sortierung in tatsächliche Ganzzahlen umzuwandeln.
Betrachten Sie den folgenden Python-Code:
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] for item in list1: item = int(item) list1.sort()
In diesem Code konvertieren wir zunächst jede Zeichenfolge in list mit der Funktion int() in eine Ganzzahl um. Allerdings vernachlässigen wir dann die Verwendung der konvertierten Ganzzahlwerte bei der Sortierung. Als Ergebnis vergleicht die Funktion die Originalzeichenfolgen und erzeugt die folgende Ausgabe:
['1', '10', '2', '200', '22', '23', '3', '4']
Um die Liste numerisch zu sortieren, müssen wir die konvertierten Ganzzahlen in die Sortierung einbeziehen, wie unten gezeigt:
list1 = [int(x) for x in list1] list1.sort()
Dieses Mal vergleicht die Funktion die ganzzahligen Werte korrekt und erzeugt die gewünschte Ausgabe:
['1', '2', '3', '4', '10', '22', '23', '200']
Alternativ, wenn Sie die Werte beibehalten müssen Anstatt Zeichenfolgen in Ganzzahlen umzuwandeln, können Sie beim Sortieren eine Tastenfunktion verwenden. Mit der Funktion sort() können Sie eine Schlüsselfunktion angeben, die auf jedes Element angewendet wird, bevor es verglichen wird. Dadurch können Sie die Vergleichskriterien anpassen.
Um beispielsweise die Liste der Zeichenfolgen mithilfe einer Tastenfunktion numerisch zu sortieren, können Sie den folgenden Code verwenden:
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] list1.sort(key=int)
In diesem Fall Die Schlüsselfunktion int() wird vor dem Vergleich auf jede Zeichenfolge angewendet. Die Funktion wandelt die Zeichenfolgen in Ganzzahlen um, und die Funktion sort() vergleicht die resultierenden Ganzzahlwerte und erzeugt dieselbe gewünschte Ausgabe:
['1', '2', '3', '4', '10', '22', '23', '200']
Durch das Verständnis der Funktionsweise der Funktion sort() in Python und die Verwendung von Schlüsselfunktionen Bei Bedarf können Sie Listen mit Zeichenfolgennummern effektiv numerisch sortieren, unabhängig von ihrem ursprünglichen Format.
Das obige ist der detaillierte Inhalt vonWie sortiere ich String-Nummern numerisch in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!