Найти - Пользователи
Полная версия: бесконечный спискогенератор
Начало » Python для новичков » бесконечный спискогенератор
1
wbt
Задача, возможно даже библиотечная, но не могу ни найти, ни сообразить, а городить монстра не хочу.

Дано:

функция типа xgen(\1,2,3,4,5\,6)

- \ - это две квадратные скобочки (вообще не соображаю даже, как они называются, в общем, в которые список оборачивается, просто их не видно)

Должно возвращать:

генератор, выдающий: 1,2,3,4,5,6,6,6,6,6 …
wbt
по-моему, что-то подобное было в itertools, но бегло не нашёл, а поиск в интернете - это такая бесполезная вещь, которая запутывает больше, чем помогает, и суёт списочные выражения
wbt
вроде сообразил:

from itertools import chain, repeat
#
def xgen(lst,dv):
return chain(lst,repeat(dv))

это нормально, или я велосипед изобрёл?
doza_and
wbt
это нормально, или я велосипед изобрёл?
нормально - пара строчек
wbt
и всё таки я вспомнил, что именно я хотел сделать:

def xgen(lst,dv):
for x in lst:
yield x
while True:
yield dv

этот вариант, наверное, лучше?
py.user.next
wbt
этот вариант, наверное, лучше?
по скорости - одинаковые
wbt
По читаемости и поддерживаемости Более наглядно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB