В общем у меня есть вложенный словарь и я хочу найти найти значение по ключу, находящемуся в одном из словарей внутри исходного.
Здесь я хочу найти значение 14, которое находится под ключом 'e'.
Для этого я написал рекурсию, которая просматривает словарь на предмет нужного мне ключа (name). Если в словаре такого ключа нет, то запускается цикл для каждого словаря внутри исходного, в котором опять запускается рекурсия. И так до победного.
Но почему-то цикл в рекурсии, после того как начался поиск в словаре 'b', за i значения в 'b' не принимает. Он до бесконечности прокручивает 'b', и в следующую рекурсию тоже подаётся 'b', после чего возникает ошибка, как видно на этой картинке:
Почему так происходит?
Код ниже:
D = {'b': {1: 4, 2: 5, 'c': 6}, 2: {'e': 14, 'qq': 15}}
def d_find(name, d):
if name not in d:
for i in d:
return d_find(name, i)
else:
return d[name]
print(d_find('e', D))