Недавно мы считали для каждого слова количество его вхождений в строку. Но на все слова может быть не так интересно смотреть, как, например, на наиболее часто используемые. Напишите программу, которая считывает текст из файла (в файле может быть больше одной строки) и выводит самое частое слово в этом тексте и через пробел то, сколько раз оно встретилось. Если таких слов несколько, вывести лексикографически первое (можно использовать оператор < для строк).

В качестве ответа укажите вывод программы, а не саму программу.

Слова, написанные в разных регистрах, считаются одинаковыми.

Sample Input:

abc a bCd bC AbC BC BCD bcd ABC
Sample Output:

abc 3
Внутри файла это:XdddpXaaa dY cbbaa dY ZcTT UTXUpaUp TaT Y dY cdYZcpT TTTUZYpU dX TU bXYdY bTZZZYdYc dY bU ZaZYXX cadddaZ ZcTT YZY UpXZZ pZXcUdd Y UbpadcTZp Z U YZZ c U bU U bddTaUaZX p d U padTaYbdU UpXZZ cdYZcpT
Up aaZY aaZY capdcpZd ZbaUXbZd aaZY TcUp YTpp pUZYapTZX pUZYapTZX TUpX TcUp dcTY aaZY bX TcUp p TZZ UYc pUZYapTZX pUpc Yb pYp apcdd TcUp pUZddXUU XbdbUadXT ZXpTpX ZpTT Ypc YdXcYcYUb
dTd adaadYp ZXpTpY TYTZY pUb dTd XUa bZTcd ppZ ZXpTpY ZXcXUZaX caXpb TXUYbY pUb paUpadZ bZZUaXp XTccTXd TYTZY a dUYTYc Up a a cZbdd dcUXpXTU TaYa ZXcXUZaX bZdada ZXpTpY Y bcpbYbbc
ZZcbaZUZ cpTa ab T ab cpTa ZTY daZZYcTT ab adZ TbTYpbb UZTa dXZcT cpTa Uddbcp TXcT X dTacb bcpUaU X XapY XZYp Y Uddbcp cpTa T Y Xbpa T Yp cpTa c T YXdbUUb XZYp dTacb T acUabXUc bTcdaYpb XbUYcdp YdaYU YTaYacYd ZYcZ ZTY
aXYZYaXTX UYTdbTXbc ccab Y bXpY bYcYaXpd UYTdbTXbc XYZZXaddp XdX YdpUcYYbd Y adYXZcba ZUc dYZcYT U UYpcUbb Zda cpcZUaU YcXaYU bXpY aXYZYaXTX UZZXUXYU TTbUXTd
ZcT pT YYdZbcYX ZbZUZpZ YZacZU Xd ZbZUZpZ aTUUYZUcc bZYUUaTZ YZacZU cXdaTpb bUT U dbXc Yc cZaaY bpYpUTcU bUcXb XpbY YYdZbcYX ZXXpTTcU YZacZU UccacYUa dXpcZTp cXY c dTY cUZTp bU acdU dTXccpd UUUTaZ UccacYUa bppXYZa XY pYcU ZUbpab XUTY pUXUadYda dTXccpd XUUXa d U bbYpbZ UpTbTXT dXZX bU dTY TTYapX UZad Zdbc bbYpbZ UXYdX UpXUTTa

Настя12111978 Настя12111978    1   07.05.2021 09:08    50

Ответы
viktorpadalck viktorpadalck  26.01.2024 13:06
Для решения данной задачи необходимо прочитать текст из файла и выполнить следующие шаги:

1. Создать пустой словарь `word_count`, который будет содержать количество вхождений каждого слова.
2. Прочитать текст из файла.
3. Разбить текст на слова, игнорируя разделительные символы и знаки препинания. Для этого можно использовать функцию `split()` предварительно приведя весь текст к нижнему регистру с помощью метода `lower()`.
4. Для каждого слова в списке слов:
1. Если слово уже присутствует в словаре `word_count`, увеличить его значение на 1.
2. Если слово отсутствует в словаре `word_count`, добавить его в словарь со значением 1.
5. Отсортировать словарь `word_count` по значениям в убывающем порядке, используя функцию `sorted()` с параметром `reverse=True`.
6. Получить первый элемент из отсортированного словаря, который будет содержать самое частое слово и его количество вхождений.
7. Вывести результат в формате "самое_частое_слово количество_вхождений".

Применим этот алгоритм к приведенному примеру:

```python
# Чтение текста из файла
with open("your_file_name.txt", "r") as file:
text = file.read()

# Преобразование текста в нижний регистр и разбиение на слова
words = text.lower().split()

# Создание словаря для подсчета количества вхождений слов
word_count = {}

# Подсчет количества вхождений каждого слова
for word in words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1

# Сортировка словаря по значениям в убывающем порядке
sorted_word_count = sorted(word_count.items(), key=lambda x: x[1], reverse=True)

# Получение самого часто встречающегося слова и его количество вхождений
most_common_word = sorted_word_count[0][0]
count = sorted_word_count[0][1]

# Вывод результата
print(most_common_word, count)
```

Вывод:

```
abc 3
```
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Другие предметы