Python 将间隔拆分为相等的部分,相加

Python 将间隔拆分为相等的部分,相加,python,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]],如何修改此代码?要将列表拆分为n个相等的块,此方法足以: def interval(l,

我需要将一个间隔(例如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]],如何修改此代码?

要将列表拆分为n个相等的块,此方法足以:

def interval(l, n):
    ret = []
    for i in range(0, len(l), n):
        ret.append(l[i:i+n])
    return ret

值得注意的是,在python中,空格/缩进确实很重要,因此您在问题中发布的方法不起作用。

最简单的方法是使用列表切片方法。这将有助于:

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
是否小于列表长度。

对于我之后的任何人: 以上这些都不起作用,但我把答案混在了一起:

def interval(n, t):
ret = []
for i in range(t):
        ret.append([(int)(i*(n-1)/t+1), (int)((i+1)*(n-1)/t)])
        
return ret

这个图书馆很适合做这类事情。它看起来很有趣@0x5453,从来都不知道有这样的存在!!