Вход на сайт
Задачка на питоне ноутпад
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")