如何获得列表中重复的最接近数的平均值?



输入列表

[0.21,5.0,9.0,0.19,0.2,0.1856,0.9,0.14,0.189]
预期输出
0.19

上面的列表重复了最接近的数字0.21,0.2,0.19,0.185,0.189。平均值0.21、0.2、0.19、0.185、0.189 = 0.974/5 = 0.1948

在这种情况下如何提取重复的最接近的数字?

注意:-我没有合适的人选。对输出数的假设

我看到像下面这样的计数器增量逻辑,它在包含int值的List上工作。但在我的例子中,这些数字不是自然数。

def most_frequent(List):
counter = 0
num = List[0]

for i in List:
curr_frequency = List.count(i)
if(curr_frequency> counter):
counter = curr_frequency
num = i
return num

List = [2, 1, 2, 2, 1, 3]
print(most_frequent(List))

输出
2

由于问题缺少最近邻数的定义。我建议对数组进行排序并计算所有相邻元素之间的差异。然后取它们之间的最小差异。我们称它为min.

然后在相同的排序数组中尝试找到相邻元素的连续元素集diff<=min. 或者给min/min一些灵活性百分比= min(1+x/100)。其中x是您希望允许的灵活性百分比。

时间复杂度:O(nlogn).