def _merge(sorted_iterables):
"""
>>> list(_merge([(1, 2, 3), (0, 2, 4)]))
[0, 1, 2, 2, 3, 4]
"""
heap = []
for iterable in sorted_iterables:
iterator = iter(iterable)
for value in iterator:
heapq.heappush(heap, (value, iterator))
break
while heap:
value, iterator = heapq.heappop(heap)
yield value
for value in iterator:
heapq.heappush(heap, (value, iterator))
break
评论列表
文章目录