coordinates = [(-225.0, -299.5), (-150.0, 75.5), (0.0, 0.0), (225.0, 300.5)]

xy = (-222.4, -204.5)


使给定值xy可以与二维坐标列表进行比较并返回最接近坐标的索引号的最佳方法是什么?

在此示例中,xy将与坐标列表进行比较,从而返回最接近的坐标(-225.0,-299.5),或更理想的是返回索引号0。

我曾尝试研究使用itertools或numpy的方法,但似乎无法理解如何在示例中获得所需的结果。

最佳答案

您可以将min与适当的key函数一起使用。例如,按照以下几行进行操作:

coordinates = [(-225.0, -299.5), (-150.0, 75.5), (0.0, 0.0), (225.0, 300.5)]
xy = (-222.4, -204.5)

dist = lambda x, y: (x[0]-y[0])**2 + (x[1]-y[1])**2
min(coordinates, key=lambda co: dist(co, xy))
# (-225.0, -299.5)

关于python - 获取二维数组中最接近的坐标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53257607/

10-13 00:03