Гистограмма частоты 2

Что нужно сделать

Мы уже писали программу для лингвистов, которая получала на вход текст и считала, сколько раз в строке встречается каждый символ. Теперь задача немного поменялась: максимальную частоту выводить не нужно, однако необходимо написать функцию, которая будет инвертировать полученный словарь. То есть в качестве ключа будет частота, а в качестве значения — список символов с этой частотой. Реализуйте такую программу.

Пример:

Введите текст: здесь что-то написано
Оригинальный словарь частот:
  : 2
- : 1
З : 1
а : 2
д : 1
е : 1
и : 1
н : 2
о : 3
п : 1
с : 2
т : 2
ч : 1
ь : 1

Инвертированный словарь частот:
1 : ['З', 'д', 'е', 'ь', 'ч', '-', 'п', 'и']
2 : ['с', ' ', 'т', 'н', 'а']
3 : ['о']

Что оценивается

  • Результат вычислений корректен.
  • input содержит корректные приглашения для ввода.
  • Формат вывода соответствует примеру.
  • Основной функционал описан в отдельных функциях.
  • Переменные и функции имеют значащие имена, не только a, b, c, d
def inversdict(text, freq_dict):
    invert_dict = {}

    for key in freq_dict.values():
        if key not in invert_dict:
            tempdict = {key: []}
            invert_dict.update(tempdict)

    for symb in text:
        if symb in freq_dict:
            values = freq_dict[symb]
            if symb not in invert_dict[values]:
                invert_dict[values] += symb

    print(f'\nИнвертированный словарь:')
    for k, v in sorted(invert_dict.items()):
        print(k, ': ', v)



text = input('Введите текст: ').lower()
freq_dict = dict()
for symb in text:
    if symb not in freq_dict:
        freq_dict[symb] = 1
    else:
        freq_dict[symb] += 1

print('Оригинальный словарь частот: ')
for k, v in sorted(freq_dict.items()):
    print(k, ':', v)