如何使某些帧范围(即 1-100)分成 4 个相等的帧范围(如 1-25、26-50、51-75、75-100 或任何类似的)。我需要每个分块帧范围的第一个和最后一个数字。
问问题
286 次
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 回答