Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 16, 2014 07:18:17

wbt
Зарегистрирован: 2013-08-13
Сообщения: 143
Репутация: +  6  -
Профиль   Отправить e-mail  

бесконечный спискогенератор

Задача, возможно даже библиотечная, но не могу ни найти, ни сообразить, а городить монстра не хочу.

Дано:

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

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

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

генератор, выдающий: 1,2,3,4,5,6,6,6,6,6 …



Бейсик - не порок, Гвидо - не пророк

Отредактировано wbt (Фев. 16, 2014 07:19:36)

Офлайн

#2 Фев. 16, 2014 07:22:05

wbt
Зарегистрирован: 2013-08-13
Сообщения: 143
Репутация: +  6  -
Профиль   Отправить e-mail  

бесконечный спискогенератор

по-моему, что-то подобное было в itertools, но бегло не нашёл, а поиск в интернете - это такая бесполезная вещь, которая запутывает больше, чем помогает, и суёт списочные выражения



Бейсик - не порок, Гвидо - не пророк

Офлайн

#3 Фев. 16, 2014 07:29:48

wbt
Зарегистрирован: 2013-08-13
Сообщения: 143
Репутация: +  6  -
Профиль   Отправить e-mail  

бесконечный спискогенератор

вроде сообразил:

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

это нормально, или я велосипед изобрёл?



Бейсик - не порок, Гвидо - не пророк

Офлайн

#4 Фев. 16, 2014 07:46:12

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

бесконечный спискогенератор

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



Офлайн

#5 Фев. 16, 2014 10:06:52

wbt
Зарегистрирован: 2013-08-13
Сообщения: 143
Репутация: +  6  -
Профиль   Отправить e-mail  

бесконечный спискогенератор

и всё таки я вспомнил, что именно я хотел сделать:

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

этот вариант, наверное, лучше?



Бейсик - не порок, Гвидо - не пророк

Офлайн

#6 Фев. 16, 2014 19:00:02

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

бесконечный спискогенератор

wbt
этот вариант, наверное, лучше?
по скорости - одинаковые



Офлайн

#7 Фев. 16, 2014 19:18:46

wbt
Зарегистрирован: 2013-08-13
Сообщения: 143
Репутация: +  6  -
Профиль   Отправить e-mail  

бесконечный спискогенератор

По читаемости и поддерживаемости Более наглядно.



Бейсик - не порок, Гвидо - не пророк

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version