Найти - Пользователи
Полная версия: задачка на самое частое слово в тексте
Начало » Python для новичков » задачка на самое частое слово в тексте
1
Iris
Всем здрасьте, помогите, плз, с алгоритмом решения задачки, ну не доходит до меня.
Из текста нужно выбрать наиболее часто встречающееся слово, вывести на экран это слово и количество, которое оно встречается.

Получается я создаю словарь, заношу туда как key слова и как value количество, а вот дальше не могу придумать, как мне выбрать максимальные по value, сравнить их key, чтобы вывести лексикологически первое слово
FishHook
Если не можешь решить эту задачу, реши другую
Найти максимальное число из данного списка l не используя стандартную функцию max
JOHN_16
Iris
у словарь есть метод items(), он вернет в зависимости от версии питона объект который либо будет списком либо его надо преобразовать в список, который содержит кортежи вида (key, value) . Далее используя функцию sorted сортируешь с аргументом reverse=True этот список по второму аргументу. Выбираешь первый элемент key которого соответствует слову,а value количеству.
py.user.next
JOHN_16
Далее используя функцию sorted сортируешь с аргументом reverse=True этот список по второму аргументу
Да в функцию max() можно передать функцию, берущую значение для сравнения.
>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> max(d.items(), key=lambda i: i[1])[0]
'c'
>>>
JOHN_16
py.user.next
Хорошее и полезное замечание в целом, но такой вариант не очень подойдет, если есть 2 и более слов с одинаковой максимальной частотой упоминания.
py.user.next
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'})
>>>
JOHN_16
py.user.next
Вот теперь хорошо все)
Iris
спасииибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB