@Goodman1

Как найти самое лексикографически упоминаемое слово в тексте?

Из файла считывается текст, в котором надо найти самое часто упоминаемое слово. Если таких слов несколько, то необходимо вывести лексикографически первое.

from collections import Counter

string = ''
with open('input.txt') as information:
for line in information:
string += line.strip()
#print('line = ', line)
string = string.lower()
#print('string = ', string)
listString = [i for i in string.split()]
dic = Counter(listString)
print(dic)

Как вы можете заметить из кода, количество упоминаний каждого слова записывается в словарь. Но как вывести самое упоминаемое лексикографически, не могу сообразить.
  • Вопрос задан
  • 157 просмотров
Решения вопроса 2
shabelski89
@shabelski89
engineer
Код надо оформлять как положено.
Вы импортируете Counter , а про его методы читали?
Ответ написан
Комментировать
Ternick
@Ternick
Вот код:
def isKey(plainDict, key):
	try:
		plainDict[key]
		return True
	except KeyError:
		return False

def main():
	wordsAmount = {}
	with open('input.txt') as f:
		lines = [lines.split(" ") for lines in f.read().strip().split("\n")]
		for line in lines:
			for word in line:
				if not isKey(wordsAmount, word):
					wordsAmount.update({word : 1})
				else:
					wordsAmount[word] += 1
	print(max(wordsAmount))


if __name__ == '__main__':
	main()

Не учтено что файл пустой и что количество всех слов одинаковое :)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы