Свяжите генератор и объект

У меня есть генератор (числа) и значение (число). Я хотел бы выполнить итерации по ним, как будто они были одной последовательностью:

i for i in tuple(my_generator) + (my_value,)

Проблема, насколько я undestand, это создает 3 кортежа только для непосредственного отбрасывания их и также копирует объекты в "my_generator" однажды.

Лучше approch был бы:

def con(seq, item):
    for i in seq:
        yield seq
    yield item

i for i in con(my_generator, my_value)

Но я задавался вопросом, возможно ли сделать это без того функционального определения

28
задан Will Vousden 13 January 2016 в 16:04
поделиться

3 ответа

itertools.chain обрабатывает несколько последовательностей как одну последовательность.

Таким образом, вы можете использовать его как:

import itertools

def my_generator():
    yield 1
    yield 2

for i in itertools.chain(my_generator(), [5]):
    print i

, что выведет:

1
2
5
42
ответ дан 28 November 2019 в 03:11
поделиться
6
ответ дан 28 November 2019 в 03:11
поделиться

Попробуйте itertools.chain (* iterables) . Документы здесь: http://docs.python.org/library/itertools.html#itertools.chain

4
ответ дан 28 November 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: