Имеется список пар идентификатора сотрудника и идентификатора менеджера, а также задан идентификатор менеджера, который выводит / возвращает иерархию менеджера, начиная с этого менеджера. Например, учитывая (manager_id, employee_id)
как [(1,3), (2,3), (3,4)]
и manager_id 4
, вернуть {4:[3], 3:[1,2]}
.
Вот мой код:
from collections import defaultdict
str = [(1,3), (2,3), (3,4), (5,4), (10,4), (6,2)]
hierarchy = defaultdict(list)
def find_emp(mgr_id):
for i in str:
if mgr_id in i:
if i[0] != mgr_id:
hierarchy[mgr_id].append(i[0])
else:
continue
for val in hierarchy:
for item in hierarchy[val]:
print(item)
find_emp(item)
print(find_emp(4))
Мой код не работает, так как он превышает максимальная глубина рекурсии Может ли кто-нибудь помочь мне идентифицировать сломанный кусок в моей логике c?