2015-04-19 3 views
-1

Скажем, я хочу, чтобы сделать список списков:Как создать новый список для каждого третьего элемента?

List_of_lists = [ [1, 2, 3] , [4, 5, 6], [7, 8, 9], .... ] 

Как сделать цикл, который сразу же создает новый список (например: [4,5,6]) ПОСЛЕ предыдущий список заполнен 3-х элементов?

Прямо сейчас, все, что я могу сделать, это:

[ [1, 2, 3, 4, 5, 6.... ] ], по существу, гигантский список в списке, вместо того, чтобы этот гигантский список раскалывается в списки с 3-х элементов каждый.

+1

может помочь увидеть то, что вы пытались до сих пор (показать код) – sfletche

+1

ли 'grouper' рецепт [здесь] (https://docs.python.org/2/library/itertools.html#recipes), что вы ищете? – BrenBarn

ответ

3

Использование range в списке понимание:

>>> [range(i,i+3) for i in range(1,10,3)] 
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] 
0
a=range(100) 

List_of_lists=[a[i:i+3] for i in range(1, 100, 3)] 

print List_of_lists 

[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18], [19, 20, 21], [22, 23, 24], [25, 26, 27], [28, 29, 30], [31, 32, 33], [34, 35, 
36], [37, 38, 39], [40, 41, 42], [43, 44, 45], [46, 47, 48], [49, 50, 51], [52, 53, 54], [55, 56, 57], [58, 59, 60], [61, 62, 63], [64, 65, 66], [67, 68, 6 
9], [70, 71, 72], [73, 74, 75], [76, 77, 78], [79, 80, 81], [82, 83, 84], [85, 86, 87], [88, 89, 90], [91, 92, 93], [94, 95, 96], [97, 98, 99]]  
Смежные вопросы