Назад к задачам
Junior — Senior
4

Извлечение значения из вложенного словаря или списка по точечному пути

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Реализуйте функцию get_by_path(obj: dict | list, path: str) -> Any, которая принимает:

  • obj – произвольный вложенный словарь или список;
  • path – строку, описывающую последовательность ключей/индексов, разделённых точкой.

Функция должна пройти по указанному пути и вернуть найденное значение. Если в любой момент путь оказывается недоступным (отсутствующий ключ, неверный тип данных, выход за границы списка и т.п.), следует вернуть None.

Пример использования:

obj = {
    'a': {
        'b': {
            'c': 1
        }
    }
}

get_by_path(obj, 'a.b.c')  # вернёт 1
get_by_path(obj, 'a.d.e')  # вернёт None

Код функции-стартера:

from typing import Any

def get_by_path(obj: dict | list, path: str) -> Any:
    ...