Как найти позицию слова в файле .txt в python 3

У меня есть .txt, заполненный 4000 разных слов, перечисленных по вертикали. Я должен найти позицию определенного слова, которое я ввожу, но я получаю действительно странные значения позиции для слова, которое действительно существует в файле. Вот как выглядит мой код до сих пор enter image description here

Итак, самое первое слово в списке - это «the», поэтому, если бы я ввел во вход search_word «the», я бы получил ноль, когда должен был бы получить 1. Другой пример: если я ввожу « be ', я бы получил 4, когда он должен был быть оценен на 2.

Я думаю, проблема в том, что мой код сканирует только каждый символ в списке, а не каждое слово отдельно. Я понятия не имею, как это исправить!

Пожалуйста, не размещайте скриншоты текста. Их нельзя искать или копировать, они не удобны в использовании. Вместо этого вставьте код в виде текста прямо в свой вопрос. Если вы выберете его и нажмете кнопку {} или Ctrl + K, блок кода будет иметь отступ в четыре пробела, что приведет к отображению его как кода.
Chris 26.10.2018 04:39
contents = list(file) должен решить вашу проблему
Joran Beasley 26.10.2018 04:41

Возможный дубликат Как искать строку в текстовых файлах?

Edgar Ramírez Mondragón 26.10.2018 06:01
1
3
486
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вместо этого вы можете использовать enumerate для генерации чисел ранжирования и конструкцию for-else для вывода слова и break цикла, как только слово будет найдено, или дождаться завершения цикла, не прерываясь, чтобы решить, что подходящего слова не найдено:

with lexicon_file as file:
    for i, w in enumerate(file, 1):
        if search_word == w.rstrip():
            print("Accoding to our Lexicon, '%s' is ranked number %d in the most common word in contemporary American English" % (search_word, i))
            break
    else:
        print("According to our Lexicon, '%s' is NOT in the 4000 most common words of contemporary American English")

Другие вопросы по теме