我花了很多时间才找到这个。我对使用键参数排序有了一些想法。在
我有一个这样的元组列表。它是通过OpenCV Hough圆检测得到的。在
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)]
它有3个值。中心坐标(x,y)和半径。在
我需要用它的x和y值对所有元组进行排序。在
我可以分开做这个分类。在
^{pr2}$这只根据x值排序。在
yS=sorted(correctC,key=lambda correctC: correctC[1])
仅根据y值排序。在
如何使用一个表达式同时(根据x值和y值)?在
我使用的是python2.7
你为什么需要提供一个密钥?默认情况下,元组按字典顺序排序(“字典顺序”)。将比较第一个元素。如果它们相同,则将比较每个元组的第二个元素,依此类推。意思是比较第一个元素,如果它们是相同的,则转到下一个元素(基本上是“字典排序”)。如果你依靠这个,你会得到你想要的,除了如果两个圆有相同的中心,那么它们也将按半径排序。在
在这种特殊情况下,如果您不关心
x, y
值相等的点是如何排列的,那么只需调用sort
就可以完成这项工作。元组按字典顺序排序。在如果你想说得更清楚,就按照另一个答案说的去做:
^{pr2}$据我所见,这有助于:
排序结果:
^{pr2}$相关问题 更多 >
编程相关推荐