python - 将区间拆分为相等的部分,相加
问题描述
我需要将一个区间(例如 1-16)拆分为更小的区间,例如 n=4。对于 16,这将是 1..4、5..8、9..12、13..16。我在这里有另一个问题的代码:
def interval(l, n):
w = (l[1] - l[0]) // n
return [[l[0]+i*w, l[0]+(i+1)*w] for i in range(n)]
这只是返回 [[1, 4], [4, 7], [7, 10], [10, 13]],我该如何修改这段代码?
解决方案
最简单的方法是使用列表切片方法。这将有助于:
def interval(l, n):
t = []
lnth = len(l)
i = 0
for i in range(0, len(l), n):
t.append(l[i:i+n])
return t
注意l[i:i+n]
不需要检查该值i+n
是否小于列表的长度。