Как одним выражением разбить массив на группы из n элементов в python?

У меня есть массив с неизвестным количеством элементов и я хочу получить из него массив массивов из 5 элементов, а остаток от деления на 5 убрать. Например:
[n0, n1, n2 ... n17] -> [[n0, n1, n2, n3, n4], [n5-n9], [n10-n14]]
[n0, n1, n2, n3] -> []

Как это сделать при помощи одного выражения?
  • Вопрос задан
  • 14629 просмотров
Решения вопроса 2
kivsiak
@kivsiak
software engineer
>>> items, chunk = range(1,20), 3
>>> zip(*[iter(items)]*chunk)
[(1, 2, 3), (4, 5, 6), (7, 8, 9), (10, 11, 12), (13, 14, 15), (16, 17, 18)]
Ответ написан
Комментировать
@stopbreath
начинающий/практикующий python-программист
In [9]: s = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

In [10]: [s[d:d+5] for d in xrange(0, len(s), 5)]
Out[10]: [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14]]

Примерно так?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы