Форум сайта python.su
Всем здрасьте, помогите, плз, с алгоритмом решения задачки, ну не доходит до меня.
Из текста нужно выбрать наиболее часто встречающееся слово, вывести на экран это слово и количество, которое оно встречается.
Получается я создаю словарь, заношу туда как key слова и как value количество, а вот дальше не могу придумать, как мне выбрать максимальные по value, сравнить их key, чтобы вывести лексикологически первое слово
Офлайн
Если не можешь решить эту задачу, реши другую
Найти максимальное число из данного списка l не используя стандартную функцию max
Офлайн
Iris
у словарь есть метод items(), он вернет в зависимости от версии питона объект который либо будет списком либо его надо преобразовать в список, который содержит кортежи вида (key, value) . Далее используя функцию sorted сортируешь с аргументом reverse=True этот список по второму аргументу. Выбираешь первый элемент key которого соответствует слову,а value количеству.
Офлайн
JOHN_16Да в функцию max() можно передать функцию, берущую значение для сравнения.
Далее используя функцию sorted сортируешь с аргументом reverse=True этот список по второму аргументу
>>> d = {'a': 1, 'b': 2, 'c': 3} >>> max(d.items(), key=lambda i: i[1])[0] 'c' >>>
Отредактировано py.user.next (Дек. 9, 2015 01:18:28)
Офлайн
py.user.next
Хорошее и полезное замечание в целом, но такой вариант не очень подойдет, если есть 2 и более слов с одинаковой максимальной частотой упоминания.
Офлайн
JOHN_16
если есть 2 и более слов с одинаковой максимальной частотой упоминания
>>> d = {'a': 1, 'b': 2, 'c': 3, 'd': 3, 'e': 3} >>> n = max(d.values()) >>> out = {k for k in d if d[k] == n} >>> n, out (3, {'e', 'd', 'c'}) >>>
Отредактировано py.user.next (Дек. 9, 2015 05:59:43)
Офлайн
py.user.next
Вот теперь хорошо все)
Офлайн
спасииибо
Офлайн