-3

特定のフレーム範囲 (つまり、1 ~ 100) を 4 つの等しいフレーム範囲 (1 ~ 25、26 ~ 50、51 ~ 75、75 ~ 100 など) に分割する方法。チャンクされたすべてのフレーム範囲の最初と最後の桁が必要です。

4

1 に答える 1

4
def chunk_range(first, last, howmany):
    size = ((last - first + 1) + (howmany - 1)) // howmany
    while first <= last:
        next = first + size
        yield first, min(next - 1, last)
        first = next

list(chunk_range(1, 100, 4))

戻り値

[(1, 25), (26, 50), (51, 75), (76, 100)]

これにより、最後のセグメントを除くすべてのセグメントが同じ長さになることに注意してください-たとえば、

list(chunk_range(1, 7, 3))

あなたにあげる

[(1, 3), (4, 6), (7, 7)]   # last chunk is only one item

代わりに、ブレセンハムのアルゴリズムのように、エラーをシーケンスに沿って分散させたい場合があります。

于 2012-09-11T13:46:13.577 に答える