我有一个名为opens的列表列表,其声明如下:
opened = [[] for i in range(5)]
现在opened = [[], [], [], [], []]
如何使用heapq.heapify()
函数堆叠每个子列表?即,打开[0],打开[1],打开[2],打开[3],打开[4]应该堆积。
提前致谢。
答案 0 :(得分:3)
每个子列表都是一个列表,所以只需在每个子列表上直接使用heapify()
:
import heapq
for j in range(5):
heapq.heapify(opened[j])
当然,如果您知道每个子列表都是空的,则无需执行此操作:空列表已经是堆。没有额外的变量或其他存储来使它们成堆,因为Python堆只是一个条件符合元素顺序的列表。