如何从整个细分市场中删除对的列表



鉴于我有一个间隔[A, B](其中A, B是整数(和(C_i, D_i), i = 1..N的非重叠间隔列表(可以保证[A, B]包含CC_4(,目标是减去[A, B](C_i, D_i), i = 1..N

A, B = 1, 10
intervals = [2, 3], [5, 6]
...
result = [[1, 1], [4, 4], [7, 10]]

numpy中是否有内置功能,还是我必须以蛮力的方式进行?

我在numpy中对此一无所知,但是您不必使用蛮力。由于(c_i,d_i(间隔是非重叠的,因此可以对其进行排序,一旦排序,您就可以在它们上迭代:

def remove_intervals(A, B, intervals):
    cur = A
    result = []
    for C, D in sorted(intervals):
        if cur < C:
            result.append([cur, C-1])
        cur = D+1
    if D < B:
        result.append([cur, B])
    return result

有Python Intervals软件包。

最新更新