Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2021, 11:37   #1
maitay
Новичок
Джуниор
 
Регистрация: 22.09.2021
Сообщений: 1
По умолчанию Питон - подсчет количества глав, в котором встречается искомое слово

Добрый день!
Изначально задача следующая - дан текстовый файл txt, разбитый по словам, главы в нем разделяются строкой '[new chapter]').
Необходимо написать программу, которая посчитает количество глав, в котором встречается искомое слово.
Моя идея состояла в том, чтобы составить список из индексов, которым соответствует строка '[new chapter]' и далее написать цикл, считающий количество глав, в которых участвует искомое слово с помощью переменной counter.
С первой частью задачи справилась, дальше начались проблемы. Не понимаю как перебрать все индексы, в которых используется искомое слово (потому что в текущем коде берется тот индекс, когда слово встречается только первый раз. Сомневаюсь, что правильно написала в целом второй цикл, результат выдается, но некорректный:
Код:
def read_data():
    data = open('/Users/taisiamoiseenko/Desktop/MISIS/Python/war_peace_processed.txt', 'rt').read()
    return data.split('\n')

data = read_data()
target_word='князь'
indexes=[]
counter=0
for index,value in enumerate(data):
    if value=='[new chapter]':
        indexes.append(index)
for i in indexes:
    j=0
    if j<data.index(target_word)<i:
        j+=i
        i+=1
        counter+=1
print(counter)
Буду очень благодарна помощи и советам) спасибо заранее.
maitay вне форума Ответить с цитированием
Старый 22.09.2021, 23:16   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Все равно уже прошлись по списку циклом, так сразу и ищите нужные слова:
Код:
target_word = 'князь'
counter = 0
word_found = False

for word in data:
    if word == '[new chapter]':
        if word_found:
            counter += 1
        word_found = False
    elif word == target_word:
        word_found = True
if word_found:
    counter += 1
print(counter)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имеется программа, которая заменяет определенное слово в файле, что изменить чтобы вместо файла, писать в консольном режиме предложение в котором будет меняться слово.-Delphi broiler747 Помощь студентам 0 08.12.2017 20:51
Найти искомое слово в txt-файле helpkz C# (си шарп) 13 17.09.2015 11:06
Как вывести новый массив, в котором число(повторяющееся) встречается 1 раз? Artur1992 Помощь студентам 0 18.02.2011 16:41
Сколько раз слово встречается в строке ksu25 Паскаль, Turbo Pascal, PascalABC.NET 1 25.09.2009 15:53
Сколько раз встречается данное слово n1k1c4 Помощь студентам 4 13.12.2007 20:33