Bonjour,
Je vous présente mon problème.
Voici une liste triée avec sorted ainsi que le type de chaque élément :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
liste_totale_int=[liste_noms,liste_prenoms,liste_class_reel,liste_class_off,liste_evolut]
print("colonne 4 :\n",liste_totale_int[4])
print("colonne triée :\n",sorted(liste_totale_int[4],reverse=True))
print("types :")
for el in liste_totale_int[4]:
    print(type(el),end = '|')
Le résultat, sans surprise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
colonne 4 :
 [1.2, 1.2, 31.7, -17.8, 7.7, -11.8, -11.8, 26.7, -3.8, 32.2, -43.8, 4.7, -4.6, 0.4, 62.5, 11.7, 7.7, 43.7, -13.3, -21.8, 0.7, -24.3, 12.3, 26.8, -0.3, 19.2, 10.2, 19.2, 7.2, 17.4, 9.7, 33.5, -21.3, -6.1, 20.5, -14.5, 0.7, 1.7, 24.7, 0.2, -17.1, 10.8, 25.2, 6.2, 0.2, -5.3, -18.6, 2.7, 0.4, -10.5, -0.3, 13.7, -2.6, 0.2, 1.9, 37.3, -10.3, -0.3, 0.2, 13.8, 4.2, -18.5, -21.8, -1.3, 13.9, -4.8, -20.8, 0.0, 0.0, 0.0, -2.8, -3.0, -12.0]
colonne triée :
 [62.5, 43.7, 37.3, 33.5, 32.2, 31.7, 26.8, 26.7, 25.2, 24.7, 20.5, 19.2, 19.2, 17.4, 13.9, 13.8, 13.7, 12.3, 11.7, 10.8, 10.2, 9.7, 7.7, 7.7, 7.2, 6.2, 4.7, 4.2, 2.7, 1.9, 1.7, 1.2, 1.2, 0.7, 0.7, 0.4, 0.4, 0.2, 0.2, 0.2, 0.2, 0.0, 0.0, 0.0, -0.3, -0.3, -0.3, -1.3, -2.6, -2.8, -3.0, -3.8, -4.6, -4.8, -5.3, -6.1, -10.3, -10.5, -11.8, -11.8, -12.0, -13.3, -14.5, -17.1, -17.8, -18.5, -18.6, -20.8, -21.3, -21.8, -21.8, -24.3, -43.8]
types :
<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|<class 'float'>|
Mais si je fais cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
liste_triee = sorted(liste_totale_int, key=lambda col:col[4],reverse=True)
J'ai le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
    liste_triee = sorted(liste_totale_int, key=lambda col:col[4],reverse=True)
 
TypeError: unorderable types: str() < float()
Je pense bien comprendre le message et j'imagine que la raison est que les éléments des sous-listes (liste_noms, ...) ne sont pas des float, mais je ne comprends pas ce comportement. Une explication (et éventuellement une solution) me rendrait service.
A bientôt.