Вложенные структуры · 15 из 16
Найти значение в глубине
Задействованы также: Рекурсия
Выгрузка из электронного журнала приходит вложенной как попало: словари внутри списков внутри словарей. Нужно достать все значения по одному ключу, где бы он ни лежал.
Что сделать
Достаньте из выгрузки журнала все значения по одному ключу — где бы он ни лежал.
Что приходит
dannye— словари и списки, вложенные как попалоklyuch— какой ключ искать
Что вернуть
Список всех значений под klyuch на любой глубине, в порядке обхода; значение-словарь попадает целиком, и внутри него поиск идёт дальше.
Допишите функцию sobrat_znacheniya в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В {"класс": "9А", "ученики": [{"имя": "Иванов"}, {"имя": "Петров"}]} ключ «имя» лежит внутри списка учеников, дважды. Ответ — ["Иванов", "Петров"].
sobrat_znacheniya({'класс': '9А', 'ученики': [{'имя': 'Иванов'}, {'имя': 'Петров'}]}, 'имя')
['Иванов', 'Петров']
Функция принимает произвольно вложенную структуру из словарей и списков и имя ключа. Возвращает список всех значений, лежащих под этим ключом на любой глубине, в порядке обхода: словарь — по порядку ключей, список — по порядку элементов. Если значение под ключом само словарь или список, оно попадает в ответ целиком, и внутри него поиск продолжается тоже.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.