J'aurais souhaité savoir si il était possible de ranger une liste de tuple représentant des positions (x, y) dans l'ordre croissant. J'ai effectivement essayé avec la fonction sorted() et j'arrive en effet à ordonner mes positions de la plus proche de (0, 0) à la plus éloignée.
Si j'utilise le paramètre reverse=True je peux effectuer l'inverse.
Cependant, serait il possible de ne pas prendre la position (0, 0) comme référence pour mon ordre croissant ? J'aurais souhaiter ordonner mes positions de la plus proche à la plus éloignée d'une positions lambda, (400, 300) par exemple.
Existe il une astuce avec la fonction sorted() ? ou bien dois-je réaliser ma propre fonction pour ordonner ma liste ?
D'avance merci pour vos précieux conseils !
NB: désolé pour la correction auto du titre "sortez" à la place de sorted() je n'avais pas fait attention..
Ca fait un petit moment que je n'ai pas fait de Python mais je crois que tu as un paramètre du nom de key pour personnaliser le tri avec ta propre fonction ( Qui du coup peut prendre un tuple )
Pour chacun des tuples, calcul la distance au tuple de référence, stocke tous les résultats dans un dictionnaire à part en associant chaque résultat au tuple qui l'a produit et trie ce dictionnaire en prenant ses clés comme critère de tri : ensuite tu prends toutes les valeurs dans l'ordre de ce dictionnaire et voilà. Bien sûr il faut utiliser un dictionnaire ordonné : https://docs.python.org/3/library/collections.html
Je ne connaissais pas cette "distance euclidienne" c'est exactement ce que je cherchais , merci à vous tous !
Fonction sortez
× 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.
typage structurel ftw