def roundrobin(*iterables):
    "roundrobin('ABC', 'D', 'EF') --> A D E B F C"
    # Recipe credited to George Sakkis
    pending = len(iterables)
    nexts = cycle(iter(it).next for it in iterables)
    while pending:
        try:
            for next in nexts:
                yield next()
        except __HOLE__:
            pending -= 1
            nexts = cycle(islice(nexts, pending))
dataset/ETHPy150Open tanghaibao/jcvi/utils/iter.py/roundrobin