Python 在列表中生成子列表

Python 在列表中生成子列表,python,python-3.x,Python,Python 3.x,我一直在尝试在列表中创建子列表,以便调用sum函数使每个子列表的所有值都必须具有相同的长度。我试着使用range函数,将start和end作为变量,在每个变量之后,相加到start和end temp1 = list() distance = list() start = 0 end = 3 distance_list = [1.4.5,5,3,5,4,5,8] for a in range(3): for b in range(start,end): temp1.appe

我一直在尝试在列表中创建子列表,以便调用sum函数使每个子列表的所有值都必须具有相同的长度。我试着使用range函数,将start和end作为变量,在每个变量之后,相加到start和end

temp1 = list()
distance = list()
start = 0
end = 3
distance_list = [1.4.5,5,3,5,4,5,8]
for a in range(3):
    for b in range(start,end):
        temp1.append(distance_list[b]
        distance.append(temp1)
        start += 3
        end += 3
在这里,预期的结果是能够创建一个如下的列表

distance = [[1,4,5],[5,3,5],[4,5,8]]
然而,我得到的结果是,数字b变得非常大。
有什么建议来解决这个问题

这应该可以解决这个问题

def split_list_to_multiple(input_vals, num_of_splits=5):
    """Splits a list into given number of splits, lists."""
    k, m = divmod(len(input_vals), num_of_splits)
    return (input_vals[i * k + min(i, m):(i + 1) * k + min(i + 1, m)] for i in range(num_of_splits))
输出

[[1, 4, 5], [5, 3, 5], [4, 5, 8]]

你能发布你的全部代码吗?你的问题中有错误,变量没有定义。[距离列表[n:n+3]对于范围0中的n,lendistance\u列表,3]如果代码是为人编写的,那就简单些
[[1, 4, 5], [5, 3, 5], [4, 5, 8]]