1、说明
对于较大的数据集,它将占用大量的内存。它不是对整个组合序列进行排序,而是使用它 merge() 一次生成一个新序列。
2、实例
importheapq importrandom random.seed(2016) data=[] foriinrange(4): new_data=list(random.sample(range(1,101),5)) new_data.sort() data.append(new_data) fori,dinenumerate(data): print('{}:{}'.format(i,d)) print('\nMerged:') foriinheapq.merge(*data): print(i,end='') print() #output #0:[33,58,71,88,95] #1:[10,11,17,38,91] #2:[13,18,39,61,63] #3:[20,27,31,42,45] # #Merged: #1011131718202731333839424558616371889195
由于merge()使用堆的实现,它根据合并的序列元素数消耗内存,而不是所有序列中的元素数。
以上是python使用merge实现堆方法,希望对大家有所帮助。更多Python学习指导:python基础教程
本文教程操作环境:windows7系统Python 3.9.1,DELL G3电脑。