Раздел 45 · Python backend: Тарбадель

itertools и ленивые конвейеры

middle~40 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

После генератора Призрака вы с Узором переписали разбор журнала Подземья конвейером: генератор читает строки, второй отбирает ошибки, третий режет их пачками для отправки наверх. Журнал машинных залов не кончается, пока работают насосы, и конвейер это выдерживает. Элодий листает ваш код у верстака и останавливается на третьем звене.

В прошлом уроке ты научился писать генераторы, которые отдают значения по одному и умеют ждать. Из них собирается конвейер: каждое звено берёт у соседа слева одно значение, что-то с ним делает и отдаёт соседу справа. Такие звенья повторяются из задачи в задачу: взять первые десять, склеить два потока, считать нарастающий итог, резать пачками, собирать подряд идущие одинаковые.

У каждого из этих звеньев в Python есть имя, и все они лежат в модуле itertools. Сегодня ты их назовёшь, а на этапе арсенала соберёшь сам, без библиотеки, и узнаешь, сколько каждое из них читает из источника.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.