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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 L = ["LUNDI", "MARDI", "MERCREDI", "JEUDI", "VENDREDI", "SAMEDI", "DIMANCHE"]
et une autre liste qui contient des valeurs.

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]
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
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"]
J'ai testé ce code :

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
et j'obtiens le message suivant :

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
Je comprend que finalement il faut que la liste de mes valeurs soit des entiers, mais je souhaite trier une list contenant des float .

Une idée ?

Merci d'avance pour votre aide.