Кодинг-марафон. Задача 8.
Напишите функцию flatten
, которая будет принимать на вход список с любой вложенностью (список в списке), а также второй параметр — глубину распаковки.
Функция должна вернуть список, где вложенные элементы соответствующего уровня распакованы, то есть вложенное превращается в плоское.
Если второй аргумент не передан, функция должна вернуть одномерный список, то есть все вложенные списки должны быть распакованы.
Сигнатура: def flatten(a_list:list, depth:int=0)->list
flatten([1, [2, 3]]) == [1, 2, 3] flatten([1, [2, [3]]], depth=1) == [1, 2, [3]] flatten([1, [2, [3]]], depth=2) == [1, 2, 3] flatten([1, [2, 3]], depth=100) == [1, 2, 3]
def flatten(a_list: list, depth: int = 0) -> list: count = 0 while True: result = [] has_list = False for element in a_list: if type(element) is list: result.extend(element) has_list = True else: result.append(element) a_list = result count += 1 if not has_list or (0 < depth == count): break return result
def flatten(a_list: list, depth: int = -1) -> list: result = [] for element in a_list: if depth == 0 or type(element) is not list: result.append(element) else: result.extend(flatten(element, depth - 1)) return result
Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…
Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…
В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…
В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…
При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…
В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…