Подтвердить что ты не робот

Генератор конкатенации и элемент

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

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

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

Лучше будет утверждать:

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

i for i in con(my_generator, my_value)

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

4b9b3361

Ответ 1

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

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

import itertools

def my_generator():
    yield 1
    yield 2

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

который выводит:

1
2
5