首页 > 解决方案 > 如何获得元组和元组列表之间的最近距离?

问题描述

我想在最接近给定元组的列表中找到元组。

我有一个坐标列表和一个点​​,我需要在列表中找到最接近我的点的项目。

像这样的东西:


cords =  [(455, 12), (188, 90), (74, 366), (10,10)]
point = (18, 448)

for c in cords:
    dst = distance.euclidean(cords[c], point)

Output = closest distance

我尝试使用scipy.spatial.distance.euclidean,但这给出了错误:

TypeError:列表索引必须是整数或切片,而不是元组

标签: pythonlisttupleseuclidean-distance

解决方案


c是坐标列表中的元组,它不是索引,所以用它代替cords[c],你也可以使用min生成器表达式来得到你想要的:

from scipy.spatial.distance import euclidean

cords =  [(455, 12), (188, 90), (74, 366), (10, 10)]
point = (18, 448)

closest_dst = min(euclidean(c, point) for c in cords)
print(closest_dst)

输出:

99.29753269845128

推荐阅读