Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 3, 2012 23:24:24

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Хочу izip как zip

Как бы это покороче сделать аналог zip, но ленивый? В смысле, чтобы он не останавливался, когда кончается короткий итератор, а генерил None, как zip.



Офлайн

#2 Апрель 3, 2012 23:47:07

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Хочу izip как zip

next_or_none = lambda a: next(a, None)
def izip_large(*iterables):
    iterators = map(iter, iterables)
    while iterators:
        next_item = tuple(map(next_or_none, iterators))
        if not any(next_item):
            return
        yield next_item
for i in izip_large('ABCD', 'xy'):
    print i
?

Отредактировано s0rg (Апрель 3, 2012 23:52:46)

Офлайн

#3 Апрель 4, 2012 03:30:03

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Хочу izip как zip

А чем родной zip_longest не устраивает?



Офлайн

#4 Апрель 4, 2012 21:37:43

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Хочу izip как zip

Спасибо! Забыл, вот ведь.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version