差异最接近特定数字的值

values for which the difference is the closest to a specific number

目前,我正在研究一个 python 问题,我想在列表中找到两个值,其差异最接近特定数字。

例如,我想在 A 中找到差值最接近 2 的两个值。

A = [1,5,9,10,20,7]

在这种情况下,答案需要是 57

约束是你总是会做 A[N+x] - A[N]。例如,你不能做 5-9。在那种情况下,它将始终是 9-5

这在 python 中可行吗?

预先感谢您的帮助。

5,7 和 9,7 的差不是比 9,10 更接近 2,因为这些差正好是 2?我不确定您是否对所有差值恰好为 2 的对进行折扣。如果您需要对差值恰好为 2 的值进行折扣,可以对以下代码进行相应修改。

import itertools

list_ = [1,5,9,10,20,7]
all_pairs = list(itertools.combinations(list_, 2))
pairs = {key:key[0]-key[1] if key[0]-key[1]>=0 else key[1]-key[0] for key in 
all_pairs}

def takeClosest(num,collection):
    return min(collection,key=lambda key_: abs(collection[key_]-num))

print(takeClosest(2,pairs))

希望对您有所帮助,如果没有,请进一步说明 9,10 示例。