Python 创建列表列表,其中每个元素的长度在另一个列表中定义

Python 创建列表列表,其中每个元素的长度在另一个列表中定义,python,nested-lists,Python,Nested Lists,如果我有一个数字列表,如何创建一个列表列表,其中每个元素的长度在另一个数字列表中预定义 例如: list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] lengths = [6,5,1,3,1] #in ascending order result = [[1,2,3,4,5,6],[7,8,9,10,11],[12],[13,14,15],[16]] 假设sum(length)=len(list)始终有效,是否有一种通用的方法来实现这一点?尝试以下方法

如果我有一个数字列表,如何创建一个列表列表,其中每个元素的长度在另一个数字列表中预定义

例如:

list = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
lengths = [6,5,1,3,1] #in ascending order
result = [[1,2,3,4,5,6],[7,8,9,10,11],[12],[13,14,15],[16]]
假设
sum(length)=len(list)
始终有效,是否有一种通用的方法来实现这一点?

尝试以下方法:

s=0
l=[]
for i in lengths:
  l.append(list[s:s+i])
  s+=i
输出

[[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11], [12], [13, 14, 15], [16]]

我认为第二个列表应该是
[7,8,9,10,11]