Найти - Пользователи
Полная версия: Проблемы с подсчетом количества глав, в котором встречается определенное слово
Начало » Python для новичков » Проблемы с подсчетом количества глав, в котором встречается определенное слово
1
amity
Добрый день!
Изначально задача следующая - дан текстовый файл 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)

Буду благодарна помощи и советам.
xam1816
Я бы разделил тект на главы сначала в список,потом проверял отдельно каждую главу на наличие слова,если есть +1,нет continue
py.user.next
amity
Изначально задача следующая - дан текстовый файл txt, разбитый по словам, главы в нем разделяются строкой
[new chapter]
amity
Необходимо написать программу, которая посчитает количество глав, в котором встречается искомое слово.
1. Надо просто брать каждую строку, пока не встретится признак главы.
2. Если встретился признак главы, нужно брать каждую строку и искать в ней заданное слово.
3. Если заданное слово встретилось в строке, то надо увеличить счётчик глав и перейти к пункту 1. Если встретился признак главы, надо ничего не делать.

xam1816
Я бы разделил тект на главы сначала в список
Не, можно без затрат памяти сделать всё. Просто конечный автомат на два состояния.
xam1816
py.user.next
Не, можно без затрат памяти сделать всё. Просто конечный автомат на два состояния.
Да этот вариант веселее, если автор поймет в чем идея конечного автомата,то потом может много где его применить
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB