查找给定数字在分区中的位置

假设我有一个排序的整数数组说


partition = [0, 3, 7, 12, 18, 23, 27]

然后给出一个值


value = 9

我想返回我的价值所在的间隔。例如


bounds = function(partition, value)

print(bounds)

>>>[7,12]

是否有一个功能可以帮助我,还是我必须从头开始构建它?


红糖糍粑
浏览 150回答 3
3回答

撒科打诨

试试numpy.searchsorted()。来自纪录片:查找应插入元素以保持顺序的索引。import numpy as nppartition = np.array( [0, 3, 7, 12, 18, 23, 27] )value = 9idx = np.searchsorted(partition,value)bound = (partition[idx-1],partition[idx])print(bound)>>>>(7,12)的优点searchsorted是它可以一次为您提供多个值的索引。

慕侠2389804

该对开模块是有效的这样做很好。它将返回上限的索引。如果该值可能超出范围,您需要进行一些错误检查:from bisect import bisectpartition = [0, 3, 7, 12, 18, 23, 27]value = 9top = bisect(partition, value)print(partition[top-1], partition[top])# 7 12

偶然的你

&nbsp;def function(partition,value):&nbsp; for i in range(len(partition)):&nbsp; if partition[i]<value and partition[i+1]>value:&nbsp; &nbsp; print [partition[i],partition[i+1]]&nbsp;partition = [0, 3, 7, 12, 18, 23, 27,5,10]&nbsp;value=9&nbsp;function(partition,value)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python