Код Middle asyncio обновлено

Порядок вывода задач с sleep(0)

Условие

Смоделируйте цикл событий. Каждая задача это список строк; задача печатает строку, затем делает await asyncio.sleep(0) (уступает управление) и печатает следующую. Задачи созданы через gather в порядке списка, планировщик выполняет готовые задачи по кругу в порядке очереди. Верните итоговый вывод списком строк.

Примеры

interleave([["a1", "a2"], ["b1", "b2"]]) // ["a1", "b1", "a2", "b2"]
interleave([["a1", "a2", "a3"], ["b1"]]) // ["a1", "b1", "a2", "a3"]
interleave([]) // []

Как подойти

Подсказки: 1
  1. Очередь deque задач, задача после шага встаёт в конец.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.