从点列表中获取两个最接近的点 [英] Get the two closest points from a list of points

查看:102
本文介绍了从点列表中获取两个最接近的点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到了一个整数/浮点数列表,我需要找到最接近的两个数字.我该如何只使用嵌套的for循环呢?

I am given a list of integers/floats and I need to find the two numbers closest together. How would I do that using only nested for loops?

推荐答案

对于每个元素,您都必须将其与其他每个元素的距离与先前的最接近"值进行比较-每当此比较产生较小的值时,您还记得那对是最接近的两个"对.

For each element, you have to compare the distance of it to each of the other elements with your previous "closest" value - any time this comparison yields smaller values, you remember that pair as the "two closest" ones.

所以,这很简单:

def find_two_closest(numbers):
    # most distant points:
    delta = max(numbers), min(numbers)
    for i, element in enumerate(numbers):
        for j, sec_element in enumerate(numbers):
            if i == j:
                continue
            if abs(sec_element - element) < abs(delta[0] - delta[1]):
                delta = sec_element, element
    return delta

这篇关于从点列表中获取两个最接近的点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆