У меня есть генератор (числа) и значение (число). Я хотел бы выполнить итерации по ним, как будто они были одной последовательностью:
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)
Но я задавался вопросом, возможно ли сделать это без того функционального определения
itertools.chain
обрабатывает несколько последовательностей как одну последовательность.
Таким образом, вы можете использовать его как:
import itertools
def my_generator():
yield 1
yield 2
for i in itertools.chain(my_generator(), [5]):
print i
, что выведет:
1
2
5
Попробуйте itertools.chain (* iterables)
. Документы здесь: http://docs.python.org/library/itertools.html#itertools.chain