import heapq from itertools import chain if __name__ == '__main__': a = [1, 4, 7, 10] b = [2, 5, 6, 11] # 首先复习一下前面的知识,如果不考虑合并后也是有序的,用chain for item in chain(a, b): print(item) # 但如果我们想要得到有序合并序列,那就要用堆自带的merge功能了,利用小根堆的特殊性来排序 new_arr = heapq.merge(a, b) for item in new_arr: print(item) # 记住,heapq的merge事先不会对输入可迭代对象的有序性进行检查,而是每次从可迭代对象序列里取出最小的第一个进堆