- ищем только буквы
- нет зависимости от регистра ('a' и 'A' считаются одинаковой буквой)
- ищем букву которая встречается максимальное количество раз
- если таких букв несколько, то результат выдаем первую встречающуюся по алфавиту
Решение мое:
>>> dict = {}
>>> text = "AavvvddAsfgh"
>>> letters = map(chr, range(ord('a'), ord('z')))
>>> for ch in text:
>>> ch_lower = ch.lower()
>>> if ch_lower in letters:
>>> if dict.has_key(ch_lower):
>>> dict[ch_lower] += 1
>>> else:
>>> dict[ch_lower] = 1
>>> out = [key for key, value in dict.items() if value == max(dict.values())]
>>> out.sort()
>>> print out[0]
a
Решение от гуру:
для Python 3.3
>>> import string>>> def out_chr(text):
>>> return max(string.ascii_lowercase,
key=lambda ch: text.lower().count(ch))
для Python 2.7
>>> import re
>>> from collections import Counter
>>> def out_chr(text):
>>> text = "".join(re.findall("\w", text.lower()))
>>> return Counter(text).most_common()[0][0]
"Python нахождение наиболее часто встречающегося СИМВОЛА
ОтветитьУдалить"ищем только буквы"
олень блять
Поправил. Спасибо за содержательный комментарий )
Удалить