modifier: grâce à tokand de remarquer que cela peut être fait avec déballer tuple.
vous pourriez le trier.
(bottomleft, bottomright,topleft, topright) = sorted(vertices)
ou vous pouvez le faire en place avec
corners.sort()
(bottomleft, bottomright,topleft, topright) = corners
# the unpacking here is redundant but demonstrative
Pour référence, la sortie des déchets triés est:
>>> a = [[499, 3], [502, 3], [502, 353], [499, 353]]
>>> sorted(a)
[[499, 3], [499, 353], [502, 3], [502, 353]]
>>>
Ce sera O (nlogn) alors qu'il ya sûrement O (n) les solutions disponibles. Mais pour une liste de cette taille, je ne pense pas que ce soit un gros problème à moins que vous en ayez une tonne (dans ce cas, la vitesse de l'implémentation C native surpasse une fonction python personnalisée de toute façon perspective.)
@systempuntoout quel est le problème? N'est-ce pas un tableau? – aneuryzm
En Python, vous devriez appeler cette structure de données une [liste] (http://docs.python.org/tutorial/datastructures.html); il existe d'autres modules qui fournissent des objets de tableau ([tableau] (http://docs.python.org/library/array.html) et [numpy] (http://www.scipy.org/Tentative_NumPy_Tutorial)) – systempuntoout