我有包含一系列元组(X,Y),表示关于笛卡尔平面不同点的两个列表:蟒:在两个阵列的两个点之间发现最小距离
a = [(0, 0), (1, 2), (1, 3), (2, 4)]
b = [(3, 4), (4, 1), (5, 3)]
我想在更小的距离,以找到两个点(每个列表,而不是在同一列表中),在这种具体情况下:
[((2, 4), (3, 4))]
其距离等于1。我用列表理解,如:
[(Pa, Pb) for Pa in a for Pb in b \
if math.sqrt(math.pow(Pa[0]-Pb[0],2) + math.pow(Pa[1]-Pb[1],2)) <= 2.0]
但这使用一个阈值。有没有办法在某处添加argmin()
或类似的东西,并只获得最小距离对[((xa, ya), (xb, yb))]
?谢谢。
你可以创建它们之间的对和距离字典...然后你可以选择对有最小dist –