Bonjour à tous,
J'ai une colle à vous poser. En gros, la question est : Comment rechercher le plus vite possible dans une liste ?
Voici mon problème (il est très simple !) : J'ai une zone de dessin avec des rectangles dont les coordonnées sont simplement mémorisées dans une liste du style :
Quand je clique dans cette zone de dessin, j'obtiens les coordonnées de la souris (x,y) grâce auxquelles je vais savoir si j'ai cliqué sur un de mes rectangles ou non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part [ (rect1, 10, 10, 20, 20), (rect2, 45, 60, 100, 230), ...]
Pour faire cette recherche, j'ai donc une fonction du style :
Bref facile ! Mais mon souci est que quand j'ai 10 rectangles dans ma liste : la boucle est très vite faite et ma solution arrive vite... MAIS QUAND J'AI 500 RECTANGLES dans la liste, là c'est bien plus LENT !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for rect in listeRectangles : if (rect[1] <= x <= rect[3]) and (rect[2] <= y <= rect[4]) : print u"j'ai cliqué sur le rectangle qui a le nom : " + rect[0]
Auriez-vous une autre méthode pour effectuer cette recherche plus vite ?
Je vous remercie pour vos réponses !
Partager