У меня есть глубоко вложенный dict, и мне нужно пройти через него и вернуть значение, соответствующее аргументу key
, второму аргументу моей функции.
Например, с
tree = {"a": 12, "g":{ "b": 2, "c": 4}, "d":5}
tree_traverse(tree, "d")
должен вернуть 5
Вот мой код:
def tree_traverse(tree, key):
for k,v in tree.items():
if isinstance(v, dict):
tree_traverse(v, key)
elif k == key:
return v
Проблема, с которой я столкнулся, заключается в том, что эта функция возвращает None, если она не находит соответствующий ключ после того, как она выполнит итерацию по самому глубокому вложенному dict.
Я не хочу, чтобы он что-либо возвращал, пока не найден соответствующий ключ.
Я не нашел решения в другом потоке, большинство из них используют операторы print и ничего не возвращают, поэтому я полагаю, что это позволяет избежать этой проблемы.