Поиск наиболее часто встречающегося символа в строке

Я обнаружил эту проблему программирования, просматривая объявление о вакансии на SO. Я подумал, что это было довольно интересно, и, как начинающий программист на Python, попытался взяться за это. Однако я считаю, что мое решение довольно ... беспорядочно ... может ли кто-нибудь внести предложения по его оптимизации или очистке? Я знаю, что это довольно тривиально, но мне было весело писать это. Примечание: Python 2.6

Проблема:

Написать псевдокод (или фактический код) для функции, которая принимает строку и возвращает букву, которая чаще всего встречается в этой строке.

Моя попытка:

import string

def find_max_letter_count(word):

    alphabet = string.ascii_lowercase
    dictionary = {}

    for letters in alphabet:
        dictionary[letters] = 0

    for letters in word:
        dictionary[letters] += 1

    dictionary = sorted(dictionary.items(), 
                        reverse=True, 
                        key=lambda x: x[1])

    for position in range(0, 26):
        print dictionary[position]
        if position != len(dictionary) - 1:
            if dictionary[position + 1][1] < dictionary[position][1]:
                break

find_max_letter_count("helloworld")

] Вывод:

>>> 
('l', 3)

Обновленный пример:

find_max_letter_count("balloon") 
>>>
('l', 2)
('o', 2)
9
задан Sunandmoon 9 November 2010 в 07:18
поделиться