Вывести ТОП 5 повторяющихся строк в тексте из файла
Доброго субботнего вечера. Вывести топ 5 пробовал через sorted и срез. Успеха - 0. Выводит всё что есть. Возможно какая-то ошибка в теле.
import re
slovo = {}
f = open('data_2.txt' ,'r')
file = f.read().lower()
pattern = re.findall(r'\b[a-z]{1,15}\b', file)
for word in pattern:
count = slovo.get(word, 0)
slovo[word] = count + 1
slovo_list = slovo.keys()
for words in slovo_list:
print(f'"{words}" повторяется в тексте - {slovo[words]} раза/раз')
Ответы (1 шт):
Автор решения: Павел
→ Ссылка
По вашему коду вы все-таки хотите найти топ-5 наиболее встречающихся слов, а не строк, в тексте файла.
Сделать это проще всего через Counter, достаточно передать ему список всех слов из файла, которые можно получить при помощи регулярного выражения, и вызвать функцию most_common():
import re
from collections import Counter
with open('data.txt') as f:
data = f.read()
words = re.findall(r'[\w]+', data)
result = Counter(words)
print(result.most_common(5))