Создать список списков, где длина каждого элемента определяется в другом списке - PullRequest
0 голосов
/ 05 апреля 2020

Если у меня есть список чисел, как я могу создать список списков, где длина каждого элемента предопределена в другом списке чисел?

Пример:

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]]

Есть ли общий c способ сделать это, предполагая, что sum(lengths) = len(list) всегда выполняется?

1 Ответ

1 голос
/ 05 апреля 2020

Попробуйте это:

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]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...