How do I merge two python iterators?

前端 未结 13 1257
花落未央
花落未央 2020-12-06 09:29

I have two iterators, a list and an itertools.count object (i.e. an infinite value generator). I would like to merge these two into a resulting ite

13条回答
  •  孤城傲影
    2020-12-06 09:50

    I'd do something like this. This will be most time and space efficient, since you won't have the overhead of zipping objects together. This will also work if both a and b are infinite.

    def imerge(a, b):
        i1 = iter(a)
        i2 = iter(b)
        while True:
            try:
                yield i1.next()
                yield i2.next()
            except StopIteration:
                return
    

提交回复
热议问题