Heim > Backend-Entwicklung > Python-Tutorial > Wie sortiere ich String-Nummern numerisch in Python?

Wie sortiere ich String-Nummern numerisch in Python?

Susan Sarandon
Freigeben: 2024-12-08 00:07:11
Original
143 Leute haben es durchsucht

How to Sort String Numbers Numerically in Python?

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()
Nach dem Login kopieren

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']
Nach dem Login kopieren

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()
Nach dem Login kopieren

Dieses Mal vergleicht die Funktion die ganzzahligen Werte korrekt und erzeugt die gewünschte Ausgabe:

['1', '2', '3', '4', '10', '22', '23', '200']
Nach dem Login kopieren
Nach dem Login kopieren

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)
Nach dem Login kopieren

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']
Nach dem Login kopieren
Nach dem Login kopieren

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!

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