wake-up-neo.com

Python, wie die Liste mit Float-Werten sortiert wird

So sortieren Sie die Python-Liste, die die Float-Werte enthält.

list1 = [1, 1.10, 1.11, 1.1, 1.2] 

oder

list1 = ['1', '1.10', '1.11', '1.1', '1.2'] 

Die erwarteten Ergebnisse sind

list_val = ['1', **'1.1', '1.2'**, '1.10', '1.11']

das zurückgegebene Ergebnis in using (sort ()) -Methode wird jedoch zurückgegeben

[1, 1.1000000000000001, 1.1000000000000001, 1.1100000000000001, 1.2]

oder

['1', '1.1', '1.10', '1.11', '1.2'].

Hier sollte 1.2 zwischen 1.1 und 1.10 liegen.

6
sathish

Sie können verwenden:

list1 = sorted(list1)

Wenn es sich im zweiten Format (als Zeichenfolge) befindet, können Sie den Schlüsselparameter verwenden, um es in Floats zu konvertieren, indem Sie Folgendes verwenden:

list1 = sorted(list1, key=float)

Der Schlüsselparameter erwartet eine Funktion, die die Werte vor der Sortierung mit den umgesetzten Werten umwandelt, wobei die ursprünglichen Werte erhalten bleiben

10

Sie können jede Liste auf zwei Arten sortieren.

  • Verwenden dersorted -Methode :: In dieser Methode gibt die sortierte Methode eine sortierte Liste zurück, die tatsächliche Liste bleibt jedoch gleich

    x=[1,2,3.1,4.5,2.3]
    y = sorted(x)
    y = sorted(x,key=float) #in case if the values were there as string.
    

    In diesem Fall bleibt x noch als [1,2,3.1,4.5,2.3], wohingegen als sortierte Liste d. H. [1,2,2.3,3.1,4.5] zurückgegeben wird und in diesem Fall y zugewiesen wird. 

  • Mit dem sort - Methodenaufruf, der für die Listen :: zur Verfügung gestellt wird, sortiert der Methodenaufruf die aktuelle Liste

    x=[1,2,3.1,4.5,2.3]
    x.sort()
    

    In diesem Fall wird x sortiert. Wenn Sie also versuchen, x zu drucken, ist es wie [1,2,2.3,3.1,4.5].

Sie können jede dieser Methoden entsprechend Ihrer Anforderung verwenden.

Ich hoffe es hilft. Viel Spaß beim Codieren :) 

1
Strik3r

Verwenden Sie einfach sorted:

sorted(list1, key=float)

Dadurch wird das Element vor dem Vergleich in float konvertiert. Es funktioniert also sowohl für eine Liste von Strings als auch für eine Liste von Floats (oder für Ints, was es wert ist).

0
Sebastian Wozny