Ich habe viel Zeit dafür gesucht. Ich habe eine Idee über das Sortieren mit Schlüsselparameter.Python-Liste mit mehreren Schlüsseln sortieren
Ich habe eine Liste von Tupel wie folgt. Es ist durch OpenCV Hough Circle Erkennung.
correctC = [(298, 172, 25), (210, 172, 25), (470, 172, 25), (386, 172, 22), (648, 172, 25), (384, 44, 22), (558, 110, 22), (562, 170, 25), (382, 108, 25), (734, 172, 25), (126, 172, 24), (646, 44, 22), (296, 110, 23), (126, 234, 26), (470, 236, 25), (296, 44, 25), (208, 108, 24), (38, 170, 25), (730, 110, 22), (730, 44, 25), (468, 110, 23), (468, 44, 25), (208, 44, 25), (124, 44, 22), (558, 44, 22), (36, 110, 24), (36, 44, 22), (298, 234, 26), (210, 236, 25), (648, 234, 25), (732, 234, 22), (562, 234, 26), (384, 236, 25), (38, 234, 26), (646, 110, 25), (124, 112, 27)]
Es hat 3 Werte. Mittelpunktskoordinate (x, y) und Radius.
Ich muss alle Tupel mit seinem x- und y-Wert sortieren.
Ich kann dies separat sortieren.
xS=sorted(correctC,key=lambda correctC: correctC[0])
Dies wird Sortierung nach x-Wert nur.
yS=sorted(correctC,key=lambda correctC: correctC[1])
Dies wird Sortierung nach y Wert nur.
Wie kann ich beides tun (nach x-Wert und y-Wert) mit einem Ausdruck?
Ich verwende Python 2.7
Was sind die Definitionen von weniger als, gleich und größer als für x und y? Genauer gesagt, was ist weniger (1, 2, 3) oder (2, 1, 3), oder werden sie für die Sortierung als gleich angesehen? Oder sollten Sie x und y in Polarkoordinaten umwandeln und die Länge zum Sortieren verwenden? –
'correctC' ist ein schlechter Name für das Lambda-Argument, da Sie denselben Variablennamen für die Liste und ihre Elemente wiederverwenden. – user2357112
Sie sollten die erwartete Ausgabe zu Ihrer Frage hinzufügen. –