Bonjour à tous,
alors mon soucis concerne le tri. J'ai exploité ce lien >>Tir<< sur lequel j'ai appris pas mal de choses, cependant j'ai pas trouvé mon bonheur
alors mon soucis est le suivant :
j'ai une liste qui contient des chaines de caractères
et une autre liste qui contient des valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part L = ["LUNDI", "MARDI", "MERCREDI", "JEUDI", "VENDREDI", "SAMEDI", "DIMANCHE"]
Je souhaite trier ma liste de nombre du plus petit au plus grand tout en triant ma liste de chaines de caractères afin d'obtenir le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Value = [0.2589, 0.84569, 1.26587, 4.5893, 1.02458, 8.0125, -1.8]
J'ai testé ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 value=[-1.8, 0.2589, 0.84569, 1.02458, 1.26587, 4.5893, 8.0125] L= ["DIMANCHE", "LUNDI", "MARDI", "VENDREDI", "MERCREDI","JEUDI", "SAMEDI"]
et j'obtiens le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 L = ["LUNDI", "MARDI", "MERCREDI", "JEUDI", "VENDREDI", "SAMEDI", "DIMANCHE"] print L value = [0.2589, 0.84569, 1.26587, 4.5893, 1.02458, 8.0125, -1.8] print value print "********************************" conv = lambda i: L[i] value.sort(key=conv) print value T = [] for i in range(0,len(L)): T.append(L[value[i]]) print T
Je comprend que finalement il faut que la liste de mes valeurs soit des entiers, mais je souhaite trier une list contenant des float .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Traceback (most recent call last): File "C:/Users/user/Desktop/enveloppe/tri_indexe_list.py", line 11, in <module> value.sort(key=conv) File "C:/Users/user/Desktop/enveloppe/tri_indexe_list.py", line 10, in <lambda> conv = lambda i: L[i] TypeError: list indices must be integers, not float
Une idée ?
Merci d'avance pour votre aide.
Partager