Код Middle Итераторы и генераторы спрашивают часто обновлено

Рекурсивно развернуть вложенные списки

Условие

Напишите генератор flatten(obj): выдаёт все не-списковые элементы из произвольно вложенных списков по порядку. Строки считаются атомарными. Проверка: run(obj) возвращает list(flatten(obj)).

Примеры

run([1, [2, [3, [4]]], 5]) // [1, 2, 3, 4, 5]
run([]) // []
run([[[[]]]]) // []

Как подойти

Подсказки: 1
  1. isinstance(x, list) и yield from.

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

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

Термины по теме