Мы уже писали программу для лингвистов, которая получала на вход текст и считала, сколько раз в строке встречается каждый символ. Теперь задача немного поменялась: максимальную частоту выводить не нужно, однако теперь необходимо написать функцию, которая будет инвертировать полученный словарь. То есть в качестве ключа будет частота, а в качестве значения — список символов с этой частотой. Реализуйте такую программу.
Пример:
Введите текст: Здесь что-то написано
Оригинальный словарь частот:
: 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
48810login-checkМодуль 19. Задача 5. Гистограмма частоты 2
