Десять категорий. Каждая категория содержит несколько подкатегорий, каждая подкатегория содержит несколько пунктов или подкатегорий с пунктами. Как файловая структура в ОС. Задача состоит в выборе способа хранения данных, для того, чтобы было удобно выводить в GUI возможность выбора пункта, находящегося в на любом уровне подкатегории. Например категория “Жирафы содержит две подкатегории: ”большие“ и ”летящие на север“. В свою очередь подкатегория ''большие” содержит пункт “любящие яблоки” и еще несколько пунктов. Подкатегория “летящие на север” содержит пункты “принадлежащие Васе” и еще несколько пунктов. Всего категорий и пунктов около 400 (рекурсивная функция обошла всю иерархию и посчитала) Уровень вложенности любого пункта не более 4. Сейчас данные хранятся в виде вложенных списков, примерно вот так:
menu = ['Категория1',['Подкатегория1',['Пункт1', 'Пункт2'', Пункт3']],'Категория2',['Подкатегория1',['Пункт1', 'Пункт2', 'Пункт3']]]
P.S Серьезно почти 400 элементов содержит меню. Это будет планировщик подачи объявлений на доску объявлений.