Что нужно сделать
Вы уже работали с многомерными списками и решали задачи, где с помощью 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))