русский
Germany.ruForen → Архив Досок→ Programmierung

Задачка на питоне ноутпад

30.07.22 12:02
Re: Задачка на питоне ноутпад
 
Бесконечный цикл завсегдатай
in Antwort 7495 29.07.22 17:09, Zuletzt geändert 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")
 

Sprung zu