Joining a set of ordered-integer yielding Python iterators

后端 未结 7 2343
囚心锁ツ
囚心锁ツ 2020-12-13 05:33

Here is a seemingly simple problem: given a list of iterators that yield sequences of integers in ascending order, write a concise generator that yields only the integers th

7条回答
  •  没有蜡笔的小新
    2020-12-13 06:07

    import heapq, itertools
    def intersect(*its):
        for key, values in itertools.groupby(heapq.merge(*its)):
            if len(list(values)) == len(its):
                yield key
    
    >>> list(intersect(*postings))
    [100, 322]
    

提交回复
热议问题