如何计算与存储在列表中的坐标的距离

How to calculate distances from coordinates stored in lists

到目前为止,我设法计算了点 P(x,y) 与存储在列表 l = [(x1,y1), (x2,y2), (x3,y3) 中的多个点之间的距离), ...) 这是代码:

import math
import pprint
l = [(1,2), (2,3), (4,5)]
p = (3,3) 
dists = [math.sqrt((p[0]-l0)**2 + (p[1]-l1)**2) for l0, l1 in l]
pprint.pprint(dists)

输出:

[2.23606797749979, 1.0, 2.23606797749979]

现在我想计算从新列表中的多个点到列表 l 中的点的距离。 我还没有找到解决方案,所以有人知道如何做到这一点吗?

这是一个可能的解决方案:

from math import sqrt

def distance(p1, p2):
    return sqrt((p1[0]-p2[0])**2 + (p1[1]-p2[1])**2)

lst1 = [(1,2), (2,3), (4,5)]
lst2 = [(6,7), (8,9), (10,11)]

for p1 in lst1:
    for p2 in lst2:
        d = distance(p1, p2)
        print(f'Distance between {p1} and {p2}: {d}')

输出:

Distance between (1, 2) and (6, 7): 7.0710678118654755
Distance between (1, 2) and (8, 9): 9.899494936611665
Distance between (1, 2) and (10, 11): 12.727922061357855
Distance between (2, 3) and (6, 7): 5.656854249492381
Distance between (2, 3) and (8, 9): 8.48528137423857
Distance between (2, 3) and (10, 11): 11.313708498984761
Distance between (4, 5) and (6, 7): 2.8284271247461903
Distance between (4, 5) and (8, 9): 5.656854249492381
Distance between (4, 5) and (10, 11): 8.48528137423857