问题:我们有一组有序序列,想对它们合并在一起之后的有序序列进行迭代
使用heapq.merge()函数来解决这个问题
import heapq
a = [1, 3, 7, 10]
b = [2, 5, 6, 11]
for c in heapq.merge(a, b):
print(c)
1
2
3
5
6
7
10
11
总结:
1、heapq.merge()的迭代性质意味着它对所有提供的序列都不会做一次性读取。这意味着可以利用它处理非常长的序列,而开销却非常小;
2、heapq.merge()要求所有的输入序列都是有序的,它只是简单地检查每个输入序列中的第一个元素,将最小的那个发送出去,然后重复执行这个步骤,直到所有的输入序列都耗尽为止。