Skip to main content
 首页 » 编程设计

python之给定一个坐标列表,计算每对点之间距离的最有效方法是什么

2025年05月04日11qq78292959

我有一个坐标列表 (x,y)。

计算每个坐标之间距离的最有效方法是什么?

到目前为止,我似乎必须做类似的事情:

for coord1 in coordinates: 
    for coord2 in coordinates: 
        if (not_already_done_(coord1,coord2)): 
            dist = math.hypot(coord2.x - coord1.x, coord2.y - coord1.y) 
            save_dist(dist,coord1,coord2) 

没有更快的方法吗?或者至少有更好的写法吗?

请您参考如下方法:

使用itertools.combinations :

from math import hypot 
from itertools import combinations 
 
coordinates = [(1, 1), (2, 2), (-2, 5)] 
 
distances = {(a,b): hypot(a[0] - b[0], a[1] - b[1]) 
             for a, b in combinations(coordinates, 2)}