假设我有一个(x,y)坐标列表。其中一个列表如下:
coords = [(7, 37), (6, 38), (6, 37), (7, 38), (6, 39), (7, 39), (6, 40), (7, 40), (6, 41), (7, 41), (6, 42), (7, 42), (6, 43), (7, 43), (6, 44), (7, 44), (6, 45), (7, 45), (6, 46), (7, 46), (6, 47), (7, 47), (6, 48), (7, 48), (6, 49), (7, 49), (6, 50), (7, 50), (6, 51), (7, 51), (6, 52), (7, 52), (6, 53), (7, 53), (6, 54), (7, 54), (6, 55), (7, 55), (6, 56), (7, 56), (6, 57), (7, 57)]
现在说我想找到这些坐标形成的矩形的最右边的右上角。
最初,我以为我可以做max(zip(*coords)[0]), min(zip(*coords)[1])
。这将给我最大的x值和最大的Y值。但是,这一点不能保证在列表中。
可以在max(coords)
找到右下角。左上角是min(coords)
找到的。但如果我想找到右上角,最有效的方法是什么。
我可以遍历列表,并为每个值计算它与max(zip(*coords)[0]), min(zip(*coords)[1])
的距离。但是,对于较大的点列表,为每个值执行平方根不是非常有效。
有没有快速找到大型列表中右上角的方法?