Модуль 19. Задача 5. Гистограмма частоты 2

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

Пример:

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

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

Решение:

text = input('Введите текст: ')
sym_dict = dict()
text_dict = dict()

print('Оригинальный словарь частот:')
for sym in text:
    if sym in sym_dict:
        sym_dict[sym] += 1
    else:
        sym_dict[sym] = 1
for i_sym in sorted(sym_dict.keys()):
    print(i_sym, ': ', sym_dict[i_sym], sep='')

print('Инвертированный словарь частот:')
for i_letter, i_num in sym_dict.items():
    text_dict.setdefault(i_num, []).append(i_letter)
for i in text_dict:
    print(i, ': ', text_dict[i], sep='')


Как можно отблагодарить:

  • Оформить удобную для вас подписку на Boosty.to
  • Разово поддержать через DonationAlerts
4880login-checkМодуль 19. Задача 5. Гистограмма частоты 2

Добавить комментарий