from math import hypot
p = [ (0,0),(1,1),(2,3),(4,5)]
def dist(p1,p2):
x1,y1= p1
x2,y2= p2
return hypot(x2-x1,y2-y1)
from itertools import combinations
distances = [dist(*pair) for pair in combinations( p,2)]
import operator as op
pair_distances = {pair: dist(*pair) for pair in combinations(p, 2)}
min(pair_distances.items(), key=op.itemgetter(1))
#(((0, 0), (1, 1)), 1.4142135623730951)
一种方法是在函数中引入一点杂质-
我想这就是你要找的
尝试构建一个包含
(pair, dist)
键值元组的字典。然后找到距离值最小的元组
代码行1。用成对的细节定义距离列表。它将是一个列表列表。
代码行2。对距离列表排序。python默认使用第一个基于索引的排序。因此,您将得到带距离的排序数组。所以第[0]个元素将是最小的[1] 是它的要点。
这是不更准确地做这种问题。但是 希望这对你有帮助
相关问题 更多 >
编程相关推荐