Код Junior Итераторы и генераторы спрашивают часто обновлено
Разбить последовательность на пачки
Условие
Напишите генератор chunks(items, size), который выдаёт списки по size элементов (последний может быть короче). items может быть любым итерируемым, в том числе итератором. Проверка: run(items, size) возвращает list(chunks(iter(items), size)).
Примеры
run([1, 2, 3, 4, 5], 2) // [[1, 2], [3, 4], [5]]
run([], 3) // []
run([1, 2, 3], 3) // [[1, 2, 3]]
Как подойти
Подсказки: 2
- Срезы работают только у последовательностей.
itertools.isliceот одного и того же итератора.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Когда выполняется тело генератора
Следующий вопрос
Рекурсивно развернуть вложенные списки
Термины по теме
Ещё по теме «Итераторы и генераторы»
- Конвейер обработки лога на генераторах
- Свой итерируемый класс, который можно обходить много раз
- Когда выполняется finally в недочитанном генераторе
- Полезные функции itertools
- Ленивые вычисления
- Протокол итерации
- Генераторное выражение против list comprehension
- itertools.groupby на несортированных данных