wbt
Фев. 16, 2014 07:18:17
Задача, возможно даже библиотечная, но не могу ни найти, ни сообразить, а городить монстра не хочу.
Дано:
функция типа xgen(\1,2,3,4,5\,6)
- \ - это две квадратные скобочки (вообще не соображаю даже, как они называются, в общем, в которые список оборачивается, просто их не видно)
Должно возвращать:
генератор, выдающий: 1,2,3,4,5,6,6,6,6,6 …
wbt
Фев. 16, 2014 07:22:05
по-моему, что-то подобное было в itertools, но бегло не нашёл, а поиск в интернете - это такая бесполезная вещь, которая запутывает больше, чем помогает, и суёт списочные выражения
wbt
Фев. 16, 2014 07:29:48
вроде сообразил:
from itertools import chain, repeat
#
def xgen(lst,dv):
return chain(lst,repeat(dv))
это нормально, или я велосипед изобрёл?
wbt
Фев. 16, 2014 10:06:52
и всё таки я вспомнил, что именно я хотел сделать:

def xgen(lst,dv):
for x in lst:
yield x
while True:
yield dv
этот вариант, наверное, лучше?
wbt
Фев. 16, 2014 19:18:46
По читаемости и поддерживаемости

Более наглядно.