У меня есть эта строка: s = "china construction bank"
. Я хочу создать функцию, которая возвращает 3 наиболее часто встречающихся символа и упорядочивает их по частоте их появления и количеству их появления, но если 2 символа появляются одинаковое количество раз, их следует упорядочить в соответствии с их алфавитным порядком. Я также хочу напечатать каждый символ в отдельной строке.
Я уже создал этот код:
from collections import Counter
def ordered_letters(s, n=3):
ctr = Counter(c for c in s if c.isalpha())
print ''.join(sorted(x[0] for x in ctr.most_common(n)))[0], '\n', ''.join(sorted(x[0] for x in ctr.most_common(n)))[1], '\n', ''.join(sorted(x[0] for x in ctr.most_common(n)))[2]`
Этот код, примененный к приведенной выше строке, даст:
a
c
n
Но это не то, что я действительно хочу, а то, что я хотел бы получить в результате:
1st most frequent: 'n'. Appearances: 4
2nd most frequent: 'c'. Appearances: 3
3rd most frequent: 'a'. Appearances: 2
Я застрял в той части, где я должен печатать в алфавитном порядке символы с одинаковыми частотами. Как я мог это сделать?
Большое спасибо заранее