Comment trier la liste python contenant les valeurs float,
list1 = [1, 1.10, 1.11, 1.1, 1.2]
ou
list1 = ['1', '1.10', '1.11', '1.1', '1.2']
Les résultats attendus sont
list_val = ['1', **'1.1', '1.2'**, '1.10', '1.11']
mais le résultat obtenu en utilisant la méthode sort () renvoie
[1, 1.1000000000000001, 1.1000000000000001, 1.1100000000000001, 1.2]
ou
['1', '1.1', '1.10', '1.11', '1.2'].
Mais ici, 1.2
devrait être compris entre 1.1
et 1.10
.
Vous pouvez utiliser:
list1 = sorted(list1)
S'il s'agit du deuxième format (sous forme de chaîne), vous pouvez utiliser le paramètre key pour le convertir en float en utilisant:
list1 = sorted(list1, key=float)
Le paramètre key attend une fonction qui transformera les valeurs avant de trier à l'aide des valeurs transformées, tout en conservant les valeurs d'origine.
Vous pouvez trier n'importe quelle liste de deux manières.
Utilisation de la méthode sorted :: :: Dans cette méthode, la méthode retournée renverra une liste triée mais la liste actuelle restera la même.
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.
Dans ce cas, x reste toujours sous la forme [1,2,3.1,4.5,2.3], où la liste triée, c'est-à-dire [1,2,2.3,3.1,4.5] sera renvoyée et, dans ce cas, attribuée à y.
Utilisation de l’appel de méthode sort fourni pour les listes: l’appel de méthode de tri permet de trier la liste actuelle
x=[1,2,3.1,4.5,2.3]
x.sort()
Dans ce cas, x sera trié. Par conséquent, si vous essayez d’imprimer x, il sera comme [1,2,2.3,3.1,4.5].
Vous pouvez utiliser l'une de ces méthodes en fonction de vos besoins.
J'espère que ça aide. Bonne codage :)
Il suffit d'utiliser sorted
:
sorted(list1, key=float)
Ceci convertira l'élément en float
avant de comparer, donc cela fonctionnera aussi bien pour une liste de chaînes que pour une liste de flottants (ou ints, à sa juste valeur).