Python 合并多个有序序列
# -*- coding: utf-8 -*- def merge(*sequences): import heapq heap = [(seq[0],seq) for seq in sequences] heapq.heapify(heap) while heap: x, seq = heapq.heappop(heap) yield seq.pop(0) if seq: heapq.heappush(heap, (seq[0], seq)) A = [[1,2,3,4], [5,6,8], [1,3,5,6,7,9]] print list(merge(*A)) # >>> [1, 1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 8, 9]