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

Wie sortiere ich eine Liste von String-Nummern numerisch in Python?

Linda Hamilton
Freigeben: 2024-12-08 17:57:12
Original
656 Leute haben es durchsucht

How to Sort a List of String Numbers Numerically in Python?

Numerisches Sortieren einer Liste von String-Zahlen

Trotz ihrer Einfachheit kann die Python-Funktion sort() beim Umgang mit Strings, die Zahlen darstellen, irreführend sein . Wie im Codeausschnitt unten gezeigt, führt der Versuch, diese Zeichenfolgen in Ganzzahlen umzuwandeln und sie dann zu sortieren, zu falschen Ergebnissen:

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
for item in list1:
    item = int(item)

list1.sort()
print(list1)
Nach dem Login kopieren

Ausgabe:

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

Um dieses Problem zu beheben, müssen Sie Konvertieren Sie Ihre Zeichenfolgen tatsächlich in Ganzzahlen. Hier ist der korrigierte Code:

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
list1 = [int(x) for x in list1]
list1.sort()
Nach dem Login kopieren

Dies gibt die richtige numerische Reihenfolge aus:

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

Wenn Sie die Elemente alternativ als Zeichenfolgen behalten müssen, können Sie den Schlüsselparameter in sort verwenden (). Dieser Parameter akzeptiert eine Funktion, die für jedes Element aufgerufen wird, bevor es verglichen wird. Zum Vergleich wird der Rückgabewert der Schlüsselfunktion anstelle des Elements selbst verwendet.

Zum Beispiel:

list1 = ["1", "10", "3", "22", "23", "4", "2", "200"]
list1.sort(key=int)
Nach dem Login kopieren

oder

list1 = sorted([int(x) for x in list1])
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie sortiere ich eine Liste von String-Nummern numerisch in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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