Форум сайта python.su
6
Задача, возможно даже библиотечная, но не могу ни найти, ни сообразить, а городить монстра не хочу.
Дано:
функция типа xgen(\1,2,3,4,5\,6)
- \ - это две квадратные скобочки (вообще не соображаю даже, как они называются, в общем, в которые список оборачивается, просто их не видно)
Должно возвращать:
генератор, выдающий: 1,2,3,4,5,6,6,6,6,6 …
Отредактировано wbt (Фев. 16, 2014 07:19:36)
Офлайн
6
по-моему, что-то подобное было в itertools, но бегло не нашёл, а поиск в интернете - это такая бесполезная вещь, которая запутывает больше, чем помогает, и суёт списочные выражения 
Офлайн
6
вроде сообразил:
from itertools import chain, repeat
#
def xgen(lst,dv):
return chain(lst,repeat(dv))
Офлайн
253
wbtнормально - пара строчек
это нормально, или я велосипед изобрёл?
Офлайн
6
и всё таки я вспомнил, что именно я хотел сделать: 
def xgen(lst,dv):
for x in lst:
yield x
while True:
yield dv
Офлайн
857
wbtпо скорости - одинаковые
этот вариант, наверное, лучше?
Офлайн
6
По читаемости и поддерживаемости
Более наглядно.
Офлайн