擅长:python、mysql、java
<p>您还可以在类中嵌入<code>distance</code>函数,该函数计算一个坐标和另一个坐标之间的距离。你的课看起来像这样:</p>
<pre><code>from math import hypot
class Coordinate(object):
def __init__(self, x, y):
self.x = x
self.y = y
def getX(self):
return self.x
def getY(self):
return self.y
def distance(self, other):
dx = self.x - other.x
dy = self.y - other.y
return hypot(dx, dy)
</code></pre>
<p>然后您可以使用<a href="https://docs.python.org/3/library/itertools.html#itertools.combinations" rel="nofollow noreferrer">^{<cd2>}</a>来获得<code>Coordinate</code>对象之间的坐标距离,正如其他人所建议的:</p>
<pre><code>coordinates = [Coordinate(1, 2), Coordinate(2, 3), Coordinate(3, 4)]
distances = [[(c1.getX(), c1.getY()), (c2.getX(), c2.getY()), c1.distance(c2)] for c1, c2 in combinations(coordinates, 2)]
print(distances)
</code></pre>
<p>输出:</p>
<pre><code>[[(1, 2), (2, 3), 1.4142135623730951], [(1, 2), (3, 4), 2.8284271247461903], [(2, 3), (3, 4), 1.4142135623730951]]
</code></pre>