can generators be nested?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • news.west.cox.net

    can generators be nested?

    This doesn't work, but is there any elegant way to do something like this?

    def gen2():
    yield "hello"

    def gen1():
    gen2()
    yield "world"

    for i in gen1(): print i

    ---- output ----
    hello
    world

    I'm doing it this way now:

    def gen2():
    yield "hello"

    def gen1():
    for i in gen2(): yield i
    yield "world"


  • Peter Otten

    #2
    Re: can generators be nested?

    news.west.cox.n et wrote:
    [color=blue]
    > This doesn't work, but is there any elegant way to do something like this?
    >
    > def gen1():
    > for i in gen2(): yield i
    > yield "world"[/color]

    For this special case, you might find itertools.chain () useful:

    from itertools import chain

    def gen1():
    yield "hello"

    def gen2():
    yield "world"

    for s in chain(gen1(), gen2()):
    print s

    Peter

    Comment

    Working...