目前,我正在研究一个python问题,在这个问题中,我希望在一个列表中找到两个值,其中的差异是最接近特定数字的值。
例如,我想在A中找到两个值,其差异最接近于2。
A= 1,5,9,10,20,7
在这种情况下,答案需要是5和7。
约束条件是,您总是要执行A[N+x] - A[N]。例如,不允许您执行5-9。在这种情况下,总是9-5
这在蟒蛇身上是可能的吗?
提前谢谢你的帮助。
发布于 2021-01-08 13:52:29
5,7和9,7的差是不是比9,10更接近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的例子多一点。
https://stackoverflow.com/questions/65628962
复制相似问题