python - 一个点和一组其他点之间的最短距离?

标签 python function

<分区>

我有一个问题。我想在 python 中编写一个函数,它将接收一个坐标 X 和一组坐标 S。我需要从组 s 返回最接近 x 的坐标。所以当你调用一个函数时,它会返回这个:

closest((9, 2), {(0, 0), (10, 0), (10, 10)}) # calling a function
(10, 0) 

因为它离两点最近。 我已经有一个计算两点之间距离的函数

def distance(s,t):
    v = 0
    for i in range(len(t)):
        v = v+(s[i]-t[i])**2
    return (sqrt(v))

但现在我陷入了如何将最接近的坐标元组返回到 x 中给出的坐标的问题。 我的英语不是很好,所以如果你不明白我的问题,请说出来,我会尽力解释。

最佳答案

首先你可以制作一个distance函数,它只返回两点之间的距离

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

然后 closest 可以使用带有 key 参数的 min 函数来对每个元素使用 distance 函数来自其他

def closest(pt, others):
    return min(others, key = lambda i: distance(pt, i))

例子

>>> closest((9, 2), {(0, 0), (10, 0), (10, 10)})
(10, 0)

计算平均距离

def avgDistance(pt, others):
    dists = [distance(pt, i) for i in others]
    return sum(dists) / len(dists)

>>> avgDistance((9, 2), {(0, 0), (10, 0), (10, 10)})
6.505956727697075

关于python - 一个点和一组其他点之间的最短距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27428178/

相关文章:

python - 如何在Python中为一个键存储多个值

Python基于key合并嵌套对象

javascript - jQuery - 仅在面板可见时切换关闭点击外部元素的面板

c - 运行函数的指针,其中变量是结构的变量

python - 在 requirements.txt 中包含 .whl 安装

python - 有没有办法防止 plotnine 在将 ggplot 对象保存到文件时打印用户警告?

java - 解释 vs. 编译 vs. 后期绑定(bind)

php - php 无法识别 iframe src

javascript - Mocha 怎么知道是异步的?

javascript - 如何运行 jQuery 插件上定义的函数?