Concatenate generator and item
I have a generator (numbers) and a value (number). I would like to iterate over these as if t开发者_JAVA技巧hey were one sequence:
i for i in tuple(my_generator) + (my_value,)
The problem is, as far as I undestand, this creates 3 tuples only to immediately discard them and also copies items in "my_generator" once.
Better approch would be:
def con(seq, item):
for i in seq:
yield seq
yield item
i for i in con(my_generator, my_value)
But I was wondering whether it is possible to do it without that function definition
itertools.chain
treats several sequences as a single sequence.
So you could use it as:
import itertools
def my_generator():
yield 1
yield 2
for i in itertools.chain(my_generator(), [5]):
print i
which would output:
1
2
5
itertools.chain()
Try itertools.chain(*iterables)
. Docs here: http://docs.python.org/library/itertools.html#itertools.chain
精彩评论