В общем, есть такая рекурсия и небольшой словарь списков:
def rec(el, l, d):
if el in l:
return True
else:
for i in l:
if i in d.keys():
return rec(el, d[i], d)
diction = {'city': ['zoo', 'park', 'cafe'], 'zoo': ['tiger', 'zebra'],
'park': ['squirrel', 'dog'], 'cafe': 'people'}
print('Yes' if rec('people', diction['city'], diction) else 'No') # No
Мне нужно каким-то образом понять, имеются ли "люди" в городе. Для этого я написал рекурсию, которая, как мне кажется, должна справиться со своей задачей.
Но всё рушится сразу же после первого элемента - "зоопарка". В нём людей нет, и рекурсия соответственно возвращает None. И вроде бы я должен переходить к следующему элементу в словаре - к парку, но этот None продолжает передаваться по цепочке вверх и в итоге вся функция возвращает None.
Что нужно добавить, чтобы всё заработало?