Je souhaites trier une liste selon mes propres critères et avec python 3 on n'a plus que liste.sort(key = ma_fonction) qui au lieu de vérifier si a > b vérifie si ma_fonction(a) > ma_fonction(b). Toutefois je souhaiterais dans le cas ou deux valeurs sont égales selon ma_fonction, les trier entre elles selon un autre critère comme ma_fonction_bis (et j'ai même besoin d'un troisième niveau de tri...). Je crois me souvenir l'avoir vu quelque part mais la syntaxe exacte m'échappe...
Je souhaites trier une liste selon mes propres critères et avec python 3 on n'a plus que liste.sort(key = ma_fonction) qui au lieu de vérifier si a > b vérifie si ma_fonction(a) > ma_fonction(b). Toutefois je souhaiterais dans le cas ou deux valeurs sont égales selon ma_fonction, les trier entre elles selon un autre critère comme ma_fonction_bis (et j'ai même besoin d'un troisième niveau de tri...). Je crois me souvenir l'avoir vu quelque part mais la syntaxe exacte m'échappe...
Une fonction de comparaison du genre :
def comp(x):
return [f1(x), f2(x)]
?
Pour des comparaisons complexes, tu peux utiliser une fonction de comparaison (c'est différent du paramètre nommé key) conjointement avec le module standard functools, voir des exemples dans mon tuto sur le tri en Python.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Découverte Python Doc Tkinter Les chaînes de caractères