Как найти самое лексикографически упоминаемое слово в тексте?
Из файла считывается текст, в котором надо найти самое часто упоминаемое слово. Если таких слов несколько, то необходимо вывести лексикографически первое.
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)
Как вы можете заметить из кода, количество упоминаний каждого слова записывается в словарь. Но как вывести самое упоминаемое лексикографически, не могу сообразить.
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()
Не учтено что файл пустой и что количество всех слов одинаковое :)