我有我所知道的增加值,這樣的列表作爲如何查找列表中子集的索引?
x = [1, 2, 3, 4, 5, 6]
我正在尋找一些範圍[min, max]
內的子集的索引。例如。我想要
>> subset_indices(x, 2, 4)
[1, 3]
>> subset_indices(x, 1.1, 7)
[1, 5]
有沒有一個很好的pythonic這樣做?
我有我所知道的增加值,這樣的列表作爲如何查找列表中子集的索引?
x = [1, 2, 3, 4, 5, 6]
我正在尋找一些範圍[min, max]
內的子集的索引。例如。我想要
>> subset_indices(x, 2, 4)
[1, 3]
>> subset_indices(x, 1.1, 7)
[1, 5]
有沒有一個很好的pythonic這樣做?
在從肯尼·奧斯特羅姆和火山的建議,我實現它只是作爲
import bisect
def subset_indices(sequence, minv, maxv):
low = bisect.bisect_left(sequence, minv)
high = bisect.bisect_left(sequence, maxv, lo=low)
return [low, high]
看平分線模塊。它專爲此設計,並具有您想要的確切功能。 –
解決方案取決於列表的大小。從簡單的搜索算法到樹。 – jmugz3
@KennyOstrom看起來很完美,謝謝。 – pingul