Вход на сайт
Задачка на питоне ноутпад
1617 просмотров
Перейти к просмотру всей ветки
в ответ 7495 29.07.22 17:09, Последний раз изменено 30.07.22 19:41 (Бесконечный цикл)
Вариант 1: генераторное выражение вручную (вторая строка)
names = (line.strip() for line in open("input.txt")) groups = (",".join(names[i:i + 5]) for i, n in enumerate(names)) # TODO: убрать последние элементы with open("output.txt", "w") as f: f.write("\n".join(groups))
Вариант 2: генератор комбинация имен автоматом (третья строка)
from more_itertools import windowed names = (line.strip() for line in open("input.txt")) groups = windowed(names, 5) # Генератор всех комбинаций из 5 элементов with open("output.txt", "w") as f: f.write("\n".join(groups))
Если хочется запись в файл также делать lazy, то надо делать так:
with open("output.txt", "w") as f: for п in groups: f.write(",".join(п) + "\n")