Numerische Sortierung von String-Listen in Python
Der Versuch, eine Liste von Strings in Python mithilfe der Funktion sort() numerisch zu sortieren, kann zu Folgendem führen: unerwartete Ergebnisse. Der Standard-Sortieralgorithmus für Zeichenfolgen in Python ist häufig alphabetisch und nicht numerisch.
Um eine Liste von Zeichenfolgen numerisch zu sortieren, müssen die Zeichenfolgen zunächst in Ganzzahlen konvertiert werden. Das bereitgestellte Code-Snippet versucht jedoch, die Zeichenfolgen in Ganzzahlen umzuwandeln, verwendet die konvertierten Werte jedoch nicht zum Sortieren.
Der richtige Ansatz besteht darin, die Zeichenfolgen mithilfe eines Listenverständnisses in Ganzzahlen umzuwandeln:
list1 = ["1", "10", "3", "22", "23", "4", "2", "200"] list1 = [int(x) for x in list1]
Sobald die Zeichenfolgen in Ganzzahlen umgewandelt wurden, kann die Liste mit der Funktion sort() sortiert werden:
list1.sort()
Dies führt dazu, dass die Liste in aufsteigender numerischer Reihenfolge sortiert wird.
Alternativ, wenn es notwendig ist, die Elemente als Zeichenfolgen beizubehalten, kann eine Tastenfunktion verwendet werden, um die Vergleichskriterien festzulegen. Die Schlüsselfunktion wird für jedes Element aufgerufen, bevor es verglichen wird, und die Rückgabewerte werden zum Vergleich anstelle der Elemente selbst verwendet:
list1.sort(key=int)
Dadurch wird die Liste auch numerisch sortiert, aber die Elemente bleiben unverändert Saiten.
Das obige ist der detaillierte Inhalt vonWie sortiere ich eine Liste von Zeichenfolgen in Python numerisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!