首页 > 解决方案 > 将区间拆分为相等的部分,相加

问题描述

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

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


推荐阅读