python删除堆中元素的方法

python删除堆中元素的方法

1、使用heappop()删除具有最小值的元素。

importheapq
fromheapq_showtreeimportshow_tree
fromheapq_heapdataimportdata

print('random:',data)
heapq.heapify(data)
print('heapified:')
show_tree(data)
print()

foriinrange(2):
smallest=heapq.heappop(data)
print('pop{:>3}:'.format(smallest))
show_tree(data)

#output
#random:[19,9,4,10,11]
#heapified:
#
#4
#919
#1011
#------------------------------------
#
#
#pop4:
#
#9
#1019
#11
#------------------------------------
#
#pop9:
#
#10
#1119
#------------------------------------

2、要删除现有元素,并在一次操作中用新值替换它们,使用heapreplace()。

importheapq
fromheapq_showtreeimportshow_tree
fromheapq_heapdataimportdata

heapq.heapify(data)
print('start:')
show_tree(data)

fornin[0,13]:
smallest=heapq.heapreplace(data,n)
print('replace{:>2}with{:>2}:'.format(smallest,n))
show_tree(data)

#output
#start:
#
#4
#919
#1011
#------------------------------------
#
#replace4with0:
#
#0
#919
#1011
#------------------------------------
#
#replace0with13:
#
#9
#1019
#1311
#------------------------------------

以上就是python删除堆中元素的方法,希望对大家有所帮助。更python学习指路:python基础教程