J'ai ce problème. p>
J'ai besoin de commander ces points 1-7 1 (4,2), 2 (3, 5), 3 (1,4), 4 (1,1), 5 (2,2), 6 (1,3), 7 (1,5) p>
et obtenir ce résultat 4, 6, 3, 5, 2, 1, 7. P>
J'utilise un script Python pour trier avec la référence X et est correct, mais le tri de Y est faux. p>
J'ai essayé avec trié (dict, clé = itemGetter (1,2)) p>
Quelqu'un peut m'aider s'il vous plaît? P>
3 Réponses :
Essayez ceci: indexation en python commence à 0. itemGetter (1,0) code> trie par le deuxième élément puis par le premier élément < / p> p>
Cela ne semble pas produire la sortie souhaitée. Pouvez-vous développer et rendre le code plus complet (il peut donc être testé à exécution)?
Ceci trie le code basé sur la commande de la première coordonnée du tuple, puis sous-commandant par la deuxième coordonnée du tuple. C'est à dire. Comme alphabétiquement, où "AA", alors "AB", puis "BA", puis "BB". Plus littéral (1,1), (1,2), (2,1), (2,2), etc.
Cela fonctionnera si (et seulement si) la paire de valeur TUPLE associée au n ° 7 est en fait En dehors de votre question (et devrait être entre # 3 et n ° 5.) p>
Si ce n'est pas le cas, voir mon autre réponse. p> sortie: strong> p>
Depuis que vous recherchez visuellement de haut en bas, puis de gauche à droite, ce code est beaucoup plus simple et fournit le résultat correct. Cela fait fondamentalement l'équivalent d'une analyse visuelle, en vérifiant tous les tuples qui se trouvent à chaque position "y = n", puis triplé des tuples "y = n" basés sur le deuxième numéro (gauche à droite).
Juste pour être plus cohérent avec le système de numéro de cartésien, j'ai converti les points sur le graphique sur les coordonnées (x, y), avec X-positif (croissant à droite) et y-négatif (diminution à leur guise. vers le bas). p> ou si vous le souhaitez plus rapidement et plus compact fort> p> : strong> p>
Quel est ce
(4,2), 2 (3, 5), 3 (1,4), 4 (1,1), 5 (2,2), 6 (1,3), 7 (1 , 5) code> une liste d'un dictionnaire, veuillez ajouter votre code ou au moins une représentation de Python de votre entrée / sortie.
Pourquoi le 7 viendra-t-il? Cela semble hors de l'ordre.
trié (dicts.values (), touche = itemGetter (1,0)) code> Trier les valeurs du dictionnaire et non le dictionnaire IT Self, et la commande dans votre exemple est basée exactement sur quoi exactement?
Lit de gauche à droite, de haut en bas, une étape de l'axe des y à l'époque.
Vous voulez dire de haut en bas, de gauche à droite. Pouvez-vous également montrer le code que vous avez essayé?
Ah. Une chose qui pourrait vous faire renverser est; Vous avez votre x, y coordonne les coordonnées en arrière. Dans un système de coordonnées cartésiennes, X vient en premier dans le tuple (x, y). Il devrait donc être
1 (2,4), 2 (5,3), 3 (4,1), 4 (1,1), 5 (2,2), 6 (3,1), 7 (5,1) code>. Bien que, étant donné que l'axe des Y devrait également monter à partir de l'axe X (pas en bas), cela peut également visser les choses. Devrait-il être
1 (2, -4), 2 (5, -3), 3 (4, -1), 4 (1, -1), 5 (2, -2), 6 (3, -1), 7 (5, -1) code>? Ou l'avez-vous inverser pour éviter de traiter avec des négatifs? Cela peut vous fasser du tri python depuis (-1> -4), tandis que (1 <4).