gpt4 book ai didi

python - 在 Python 中查找最接近特定值的列表项

转载 作者:太空宇宙 更新时间:2023-11-03 13:44:16 28 4
gpt4 key购买 nike

我有一个已排序 float 列表y,以及一个未排序 float 列表x

现在,我需要找出 x 中的每个元素位于 y 的值之间,最好是通过 y 的索引。例如,如果

y=[1,2,3,4,5]

x[0]=3.5

我需要 x 的索引 0 的输出为 (2,3),因为 3.5 介于 y[2]y[3] 之间。

基本上,这与将 y 视为 bin 边缘并将 x 排序到这些 bin 是一样的,我猜。

完成该任务的最简单方法是什么?

最佳答案

我会使用 zip (itertools.izip 在 Python 2.x 中)来完成这个:

from itertools import islice#, izip as zip # if Python 2.x

def nearest_neighbours(x, lst):
for l1, l2 in zip(lst, islice(lst, 1, None)):
if l1 <= x <= l2:
return l1, l2
else:
# ?

示例用法:

>>> nearest_neighbours(3.5, range(1, 6))
(3, 4)

如果 x 不在 lst 中的任何对之间(即替换 # ?! ) 如果你想要索引(虽然你的例子没有使用它们),玩一下 enumerate .

关于python - 在 Python 中查找最接近特定值的列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23741576/

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