
1、使用heappop()删除具有最小值的元素。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import heapq
from heapq_showtree import show_tree
from heapq_heapdata import data
print( 'random :' , data)
heapq.heapify(data)
print( 'heapified :' )
show_tree(data)
print()
for i in range(2):
smallest = heapq.heappop(data)
print( 'pop {:>3}:' .format(smallest))
show_tree(data)
# output
# random : [19, 9, 4, 10, 11]
# heapified :
#
# 4
# 9 19
# 10 11
# ------------------------------------
#
#
# pop 4:
#
# 9
# 10 19
# 11
# ------------------------------------
#
# pop 9:
#
# 10
# 11 19
# ------------------------------------
|
2、要删除现有元素,并在一次操作中用新值替换它们,使用heapreplace()。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import heapq
from heapq_showtree import show_tree
from heapq_heapdata import data
heapq.heapify(data)
print( 'start:' )
show_tree(data)
for n in [0, 13]:
smallest = heapq.heapreplace(data, n)
print( 'replace {:>2} with {:>2}:' .format(smallest, n))
show_tree(data)
# output
# start:
#
# 4
# 9 19
# 10 11
# ------------------------------------
#
# replace 4 with 0:
#
# 0
# 9 19
# 10 11
# ------------------------------------
#
# replace 0 with 13:
#
# 9
# 10 19
# 13 11
# ------------------------------------
|
以上就是python删除堆中元素的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。