2016-09-25 3 views
0

В принципе, я хочу группировать элементы в списке. Например:Создание вложенного списка со списком в Python

  1. Для [1, 2, 3, 4, 5, 6], я хочу [[1, 2, 3], [4, 5, 6]]
  2. Для [1, 2, 3, 4, 5, 6, 7], я хочу [[1, 2, 3], [4, 5, 6], [7]]

Я знаю, как unnest вложенных списков, но я понятия не имею, как создать вложенный список.

ответ

2

Вы можете использовать список понимание с range и выходными ломтиками 3:

>>> l = [1, 2, 3, 4, 5, 6, 7] 
>>> [l[i:i+3] for i in range(0, len(l), 3)] 
[[1, 2, 3], [4, 5, 6], [7]] 

>>> l = [1, 2, 3, 4, 5, 6] 
>>> [l[i:i+3] for i in range(0, len(l), 3)] 
[[1, 2, 3], [4, 5, 6]] 

Range принимает три аргумента, где первый является началом диапазона, второй конец и третий шаг. Если вы используете Python 2, используйте вместо этого xrange.

1

Я думаю, что вы можете сделать это следующим образом:

target = [1, 2, 3, 4, 5, 6, 7] 
n = 3 
print([target[i:i+n] for i in range(0, len(target), n)]) 

Вы можете изменить размер подсписка путем изменений п. Но в приведенном выше коде я дважды использую цель, я надеюсь найти способ использовать цель один раз.

 Смежные вопросы

  • Нет связанных вопросов^_^