1 | |||||||||||
Реализация генератора для разбивки текста на блоки16.04.2017, 21:36. Показов 1254. Ответов 2
Есть вот такой генератор, который разбивает переданный в виде коллекции (в данном случае Word sentences) текст на блоки размером не более, чем указанное число символов в chars.
Так как на каждой итерации может оставаться часть текста не вошедшая в порцию для yield, то он просто добавляется в переменную text, в которую будет писаться следующая порция текста на следующей итерации. Выглядит не очень хорошо, и хотелось бы просто передавать генератору стартовый индекс уменьшенный на единицу - чтобы захватывать не вошедшие на пред. итерации порции текста. Но как тут использовать send - не понимаю.
Добавлено через 36 минут Переписал на while вместо range:
0
|
16.04.2017, 21:36 | |
Ответы с готовыми решениями:
2
Ускорить алгоритм разбивки строк на блоки Разработать алгоритм и программу для разбивки текста на строки [Trace mode] Реализация калькулятора. Выбрать компонент для генератора входного сигнала Создание генератора текста для yaml Макрос разбивки текста в ячейке |
2740 / 2339 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
16.04.2017, 21:50 | 2 |
Garry Galler, можешь попробовать использовать itertools.islice. Как-то использовал ее, чтобы сделать подобное.
0
|
17.04.2017, 01:05 [ТС] | 3 |
alex925,
К islice я присматривался - только у меня ведь итерация по коллекции (у word-а она к тому еще и не Iterable - нужно перегонять) только первый этап, а просто slice мне ничего не дает. Я тут подумал, что было бы неплохо для такой задачи как-то объединенить accumulate(), которая будет через lambda агрегировать элементы коллекции, а затем отдавать takewhile с предикатом брать пока не
0
|
17.04.2017, 01:05 | |
17.04.2017, 01:05 | |
Помогаю со студенческими работами здесь
3
Реализация QR генератора Реализация функции-генератора Реализация простейшего генератора пароля Реализация генератора случайных лабиринтов Реализация генератора экспоненциальных колебаний Реализация простейшего генератора паролей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |