if/else довольно медленный и на мой взгляд его стоит использовать когда у нас есть раличные вычесляемыу условия, по типу:
if a < x+3: ...
elif b > x-a: ...
else: ...
То есть когда принципиально логика условия меняется то без if/else не обойтись но если в условии только сравнение то в разы производительней использовать match/case
match a:
case 1: ...
case 2: ...
case _: ...
В вашем случае вообще можно упростить до словаря и это будет намного быстрее работать и при этом словарь будет сразу всю иерархию навигации отображать и держать его удобнее в другом файле