問題:我們有一組有序序列,想對它們合并在一起之后的有序序列進行迭代
使用heapq.merge()函數(shù)來解決這個問題
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()的迭代性質(zhì)意味著它對所有提供的序列都不會做一次性讀取。這意味著可以利用它處理非常長的序列,而開銷卻非常??;
2、heapq.merge()要求所有的輸入序列都是有序的,它只是簡單地檢查每個輸入序列中的第一個元素,將最小的那個發(fā)送出去,然后重復執(zhí)行這個步驟,直到所有的輸入序列都耗盡為止。