Найти в Дзене

Как разгладить список. Решение в одну строчку

Еще одна интересная и на первый взгляд простая задачка, которую я решил через рекурсию. А оказалось, на самом деле ее можно решить в одну строчку. Однострочное решение принадлежит не мне. Оно взято с сайта где и была найдена задачка. Задача Существует список, который содержит целые числа или другие вложенные списки, которые могут содержать еще несколько списков и целых чисел, которые затем... вы получаете идею. Вы должны положить все целые значения, в один плоский список. Порядок должен быть такой же как и в первоначальном списке с представлением строки слева направо. Решение Основную задачу будет выполнять функция, для которой: Входные данные: Вложенный список с целыми числами. Выходные данные: Одномерный список с целыми числами. Функция не идеальна и при наличии в исходном массиве элементов другого типа, работа функции будет завершена с ошибкой. Данный факт мы опустим и будем считать, что элементы входного массива это числа и другие массивы, содержащие так же числа и массивы. Из кода
Оглавление
Просто однострочник
Просто однострочник

Еще одна интересная и на первый взгляд простая задачка, которую я решил через рекурсию.

А оказалось, на самом деле ее можно решить в одну строчку. Однострочное решение принадлежит не мне. Оно взято с сайта где и была найдена задачка.

Задача

Существует список, который содержит целые числа или другие вложенные списки, которые могут содержать еще несколько списков и целых чисел, которые затем... вы получаете идею. Вы должны положить все целые значения, в один плоский список. Порядок должен быть такой же как и в первоначальном списке с представлением строки слева направо.

Решение

Основную задачу будет выполнять функция, для которой:

Входные данные: Вложенный список с целыми числами.

Выходные данные: Одномерный список с целыми числами.

Функция не идеальна и при наличии в исходном массиве элементов другого типа, работа функции будет завершена с ошибкой. Данный факт мы опустим и будем считать, что элементы входного массива это числа и другие массивы, содержащие так же числа и массивы.

Из кода видно, что функция перебирает каждый элемент исходного массива и если он является числом, то добавляет его в новый массив.

Если элемент не является числом, значит это вложенный массив и функция запускает опять сама себя, но уже в качестве входного массива использует массив найденный в массиве выше и т.д.

Запустив данный скрипт мы получим:

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

Однострочное решение

Спасибо за потраченное время на прочтение.

Строго не судите.

За уместные комментарии буду признателен.