差异最接近特定数字的值

问题描述 投票:0回答:1

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

例如,我想在

A
中找到差值最接近 2 的两个值。

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

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

5
7

限制是你总是会做

A[N+x] - A[N]
。例如,您不可以做
5-9
。那样的话,永远是
9-5

这在 Python 中可能吗?

python list difference
1个回答
1
投票

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 的例子。

© www.soinside.com 2019 - 2024. All rights reserved.