myArr = array([4,1,88,44,3])
myNumber = 25
FindClosest(myArr, myNumber)
...
4, 44

有什么方法可以找到列表中与给定数字最接近的2个数字,以使其中一个较高而另一个较低?

我可以通过以下方式找到最接近的数字:
min(myArr.tolist(), key=lambda x:abs(x-myNumber))

最佳答案

排序不是必需的,并且使该时间复杂度为O(n logn)时应仅为O(n)。

我相信这是您在寻找什么,利用numpy数组索引:

>>> # the smallest element of myArr greater than myNumber
>>> myArr[myArr > myNumber].min()
44

>>> # the largest element of myArr less than myNumber
>>> myArr[myArr < myNumber].max()
4

关于python - 查找给定数字上下的最接近元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36275459/

10-12 21:38