gpt4 book ai didi

python - 在字典中找到最接近的值

转载 作者:行者123 更新时间:2023-11-28 21:38:52 36 4
gpt4 key购买 nike

所以基本上我有一个包含一些值的字典,我想找到最接近给定值的值。所以它看起来像这样:

values = {"val": [210418, 211120, 211822, 212523, 213500]}
input = 210944
output = find_nearest(input,values["val"])
print output
# 210418

如您所见,我想获得最接近我的值的值。 min() 方法给出了 211120,但我想得到 210418。我该怎么做?

最佳答案

如果您的值是有序的,就像在示例数据中一样,这可以使用二分法在对数时间内实现:

>>> vals = [210418, 211120, 211822, 212523, 213500]
>>> target = 210944
>>> from bisect import bisect_left
>>> i = bisect_left(vals, target)
>>> if i == 0:
... raise Exception
...
>>> vals[i-1]
210418

如果它们没有排序,考虑 numpy:

>>> import numpy as np
>>> a = np.array(vals)
>>> a[a<target].max()
210418

关于python - 在字典中找到最接近的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47598311/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com