如何使某个帧范围(即1-100)分成4个相等的帧范围(如1-25,26-50,51-75,75-100或类似的任何东西)。我需要每个chunked帧范围的第一个和最后一个数字。
答案 0 :(得分: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
您可能希望沿序列分配错误,即Bresenham的算法。