Нужно написать программа, которая будет перебирать первые буквы слова и выводить в порядке убывание частоты из употребления python

В файле input.txt задан текст, содержащий не более 1000 символов. Записать в файл output.txt и вывести на экран буквы, на которые начинаются слова в тексте, в порядке убывания частоты их употребления.

file_in = open('input.txt', encoding='utf-8') # открываем файл для чтения 
file_out = open('output.txt', 'w', encoding='utf-8') # открываем файл для изменения
s = file_in.read()
print(s)
file_in.close()
list = []
s=s.lower()
a = s.split(' ')
slovar=dict()
j=ord('а')
for i in range(1+34):
    slovar[chr(j)]=0
    j+=1
count_rus_letter = 0
for i in range(len(a)):
    if a[i][0] in slovar:
        slovar[a[i][0]]+=1
        count_rus_letter+=1
for i in slovar:
    if slovar[i] != 0:
        list.append(slovar[i])
        file_out.write(i+ '-' + str(slovar[i]))
        print(i,'-', (slovar[i]))
list = sorted(list, reverse=True)
print(list)
file_out.write(list)


file_out.close()

Нужно сделать так, чтобы он сортировал от большего к меньшему и выводил это, также записывая в output.txt


Ответы (1 шт):

Автор решения: Kuchizu
from collections import Counter
with open('input.txt', encoding='utf-8') as f:
    file_in = f.read()
with open('output.txt', 'w', encoding='utf-8') as f:
    c = Counter(i[0] for i in file_in.split())
    for i in sorted(c, key=c.get)[::-1]:
        f.write(f'{i}- {c[i]}\n')
→ Ссылка