开发者

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜