私は2次元の点のリストを持っており、与えられた点に最も近い点を探したいと思います。以下のコード(get_closest_point())は、私が望むことをします。しかし、Pythonでこれを行うには、より良い方法がありますか?別のポイントに最も近いリスト内のポイントを見つけるために、より平凡な方法がありますか?
class Circle(object):
def __init__(self, pos):
self.position = pos
class Point(object):
..
def compute_distance_to(self, p)
..
class SomeClient(object):
..
def get_closest_point(self, points, p1):
closest = (None, float(sys.maxint))
for p2 in points:
distance = p2.compute_distance_to(p1)
if distance < closest[1]:
closest = (p2, distance)
return closest[0]
def get_closest_circle(self, circles, p1):
closest = (None, float(sys.maxint))
for c in circles:
distance = c.position.compute_distance_to(p1)
if distance < closest[1]:
closest = (c, distance)
return closest[0]
興味深い質問です。 argmax/argminの変種を何度も何度も繰り返し実装しています – Nicolas78