Примечание. Это №2 в серии задач по манипулированию массивами . Для предыдущего вызова нажмите здесь .
Разделение вложенных списков
Чтобы разделить значения во вложенном списке, выровняйте его, а затем оберните каждое значение так, чтобы оно было на той же глубине вложенности, что и раньше.
То есть этот список:
[1, [2, 3], [4, 4, [5, 2], 1]]
Станет:
[1, [2], [3], [4], [4], [[5]], [[2]], [1]]
Соревнование
Ваша задача - написать программу, которая берет любой вложенный список натуральных чисел (в пределах вашего языка) и выполняет эту операцию разделения.
Вы можете отправить функцию, которая принимает список в качестве аргумента, или полную программу, которая выполняет ввод / вывод.
Поскольку это код-гольф , выигрывает самое короткое представление (в байтах)! *
* Стандартные лазейки для гольфа запрещены. Вы знаете, что делать.
Тестовые случаи
Входные списки будут содержать только целые числа в стандартном целочисленном размере вашего языка. Чтобы избежать языковых ограничений, мешающих им конкурировать, значения не будут вкладываться на глубину более 10.
Вы можете предположить, что входные данные не будут иметь пустых подсписков: например, - [[5, []]]
не будет дано. Тем не менее, основной список может быть пустым.
[] -> []
[[1, 2]] -> [[1], [2]]
[3, [4, 5]] -> [3, [4], [5]]
[3, [3, [3]]] -> [3, [3], [[3]]]
[[6, [[7]]]] -> [[6], [[[7]]]]
[[5, 10], 11] -> [[5], [10], 11]
Не стесняйтесь оставлять комментарии, если я пропустил угловой случай.
пример
Я бросил вместе быстрый (ungolfed) Python решение 3 в качестве примера - вы можете проверить его на repl.it .