Я пытаюсь перебрать текстовый файл (содержащий несколько историй) и вернуть список списков, где каждый список - это новая история.
read_lines_in_text (fname) - этогенератор, который я хочу перебрать, чтобы прочитать каждую строку в текстовом файле.Это должно оставаться генератором.
find_title (fname) - это функция, которая должна использоваться и возвращает список строк в тексте, где появляется заголовок (и, следовательно, сигнализирует началоновая история).
Код, который я написал ниже, выполняет свою работу, но я думаю, что это не очень хорошее решение.
newdict = {}
story = []
list_of_stories = []
for idx, line in enumerate(read_lines_in_text(fname)):
if line in find_title(fname):
newdict[idx] = line
for idx, line in enumerate(read_lines_in_text(fname)):
if idx >= list(newdict.keys())[0]:
if idx in newdict:
list_of_stories.append(story)
story = []
story.append(line)
else:
story.append(line)
Учитывая, что у меня есть индексы, где каждый заголовок встречается в тексте, я хочу иметь что-то вроде следующего:
for lines between key i and key i+1 in mydict:
append to story
list_of_stories.append(story)
story = []