如何在列表中查找子集的索引?

时间:2016-10-14 14:59:11

标签: python list subset

我有一个我知道正在增加的值列表,例如

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方法呢?

1 个答案:

答案 0 :(得分:1)

根据Kenny Ostrom和volcano的建议,我将其简化为

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]