Список списков 2

Что нужно сделать

Вы уже работали с многомерными списками и решали задачи, где с помощью list comprehensions «выпрямляли» многомерные списки в один. Однако такой фокус не пройдёт, если у элементов разные уровни вложенности и этих списков неограниченное количество.

Дан такой список:

nice_list = [1, 2, [3, 4], [[5, 6, 7], [8, 9, 10]], [[11, 12, 13], [14, 15], [16, 17, 18]]]

Напишите рекурсивную функцию, которая раскрывает все вложенные списки, то есть оставляет только внешний список.

Ответ: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]

Подсказка: можно возвращать списки и срезы списков.

Что оценивается

  • Результат вычислений корректен.
  • Формат вывода соответствует примеру.
  • Основной функционал описан в отдельной функции(-ях).
  • Переменные и функции имеют значащие имена, не только a, b, c, d
nice_list = [1, 2, [3, 4], [[5, 6, 7], [8, 9, 10]],
             [[11, 12, 13], [14, 15], [16, 17, 18]]]

def openlist(obj, result=[]):
    for i in obj:
        if type(i) != list:
            result.append(i)
        else:
            openlist(i)
    return result

print(openlist(nice_list))