2024-09-27 09:27:40 发布
网友
我最初尝试使用优先级队列编写一个算法来解决一个15个难题,但我的指导老师告诉我们,我们需要在a*实现中编写,并建议我们使用heapq而不是优先级队列。我在查找heapq的长度/大小以及访问heapq的元素时遇到了困难。我的印象是,通过使用heapq,您可以访问heapq中的元素,而这些元素在优先级队列中是无法访问的。然而,似乎没有任何方法可以从heapq中找到长度/检索元素。你们中有谁知道一种方法来获得heapq的长度/元素或者更适合这种情况的数据结构吗?在
heapq堆只不过是元素遵循特殊(非唯一)顺序的列表。在
heapq
您可以在上面使用len(heap),就像在其他列表中一样。在
len(heap)
In [1]: import heapq In [2]: heap = [40, 10, 20, 30] In [3]: heapq.heapify(heap) In [4]: heap Out[4]: [10, 30, 20, 40] In [5]: heapq.heappop(heap) Out[5]: 10 In [6]: heap Out[6]: [20, 30, 40] In [7]: len(heap) Out[7]: 3
您还应该阅读the python documentation for heapq:您应该对example section感兴趣。在
heapq
堆只不过是元素遵循特殊(非唯一)顺序的列表。在您可以在上面使用
len(heap)
,就像在其他列表中一样。在您还应该阅读the python documentation for heapq:您应该对example section感兴趣。在
相关问题 更多 >
编程相关推荐