Генераторы и итераторы · 4 из 16
Склеить ленты
Лент на заводе три, и учёт по ним ведут порознь. Тамаре для сводки нужна одна общая лента: сначала всё с первой, потом всё со второй, потом с третьей. Запускать вторую, пока первая идёт, незачем — и память на это тратить тоже.
Что сделать
Склейте учёт трёх лент в одну общую ленту для сводки.
Что приходит
lenty— поток лент; каждая лента — тоже поток буханок
Что вернуть
Генератор: отдаёт буханки по одной — всю первую ленту, потом вторую и так далее; следующая лента не трогается, пока не кончилась предыдущая.
Допишите функцию vse_lenty в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
list(vse_lenty([["бородинский", "батон"], ["хала"]]))
['бородинский', 'батон', 'хала']
Функция принимает поток лент. Каждая лента — тоже поток: по ней идут буханки (строки). Отдаёт буханки по одной: сначала все с первой ленты, потом со второй, и так далее. Пустые ленты просто не дают ничего. Следующая лента не трогается, пока не кончилась предыдущая.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.