По условию задачи первая функция получает информацию из файла и возвращает словарь.
Вторая функция в цикле запрашивает у пользователя что ему нужно и выводит информацию в отсортированном виде.
Если словарь не возможно хранить в отсортированном виде, то получается, что:
1) в памяти лежит не сортированный словарь,
2) по запросу юзера данные сортируются и выдаются юзеру выдается интересующая его часть,
3) в памяти по прежнему лежит не сортированный словарь,
4) по новому запросу опять будет произведена сортировка.
Таким образом, каждый запрос порождает сортировку. Не разумнее ли отсортировать словарь и хранить его в памяти сортированным (правда уже в виде списка)?
Словарь занимает сильно меньше места чем список? Или тут другие причины называемого условием задачи хранения инфы в виде словаря?
А есть способ сортировать словарь прямо во время его печати? В смысле так, чтобы исходный dict1 остался словарем и новая переменная не создавалась.
Способ нашел сам, но это ппц) Есть варианты попроще?)
for i, el in list(enumerate(sorted(dict1.items(), )) ):
print('%-16s' % list(enumerate(sorted(dict1.items(),)))[i][1][0], ' : ', end='')
print(list(enumerate(sorted(dict1.items(),)))[i][1][1][years.index(inquiry)])
Исходный словарь выглядит так:
dict1 = {
'вслово1' : [1,2,3,4,5],
'аслово2' : [11,22,33,44,55],
'бслово3' : [111,222,333,444,555]}