访问索引和heapq的长度?

2024-09-27 09:27:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我最初尝试使用优先级队列编写一个算法来解决一个15个难题,但我的指导老师告诉我们,我们需要在a*实现中编写,并建议我们使用heapq而不是优先级队列。我在查找heapq的长度/大小以及访问heapq的元素时遇到了困难。我的印象是,通过使用heapq,您可以访问heapq中的元素,而这些元素在优先级队列中是无法访问的。然而,似乎没有任何方法可以从heapq中找到长度/检索元素。你们中有谁知道一种方法来获得heapq的长度/元素或者更适合这种情况的数据结构吗?在


Tags: 方法算法元素数据结构队列情况建议heapq
1条回答
网友
1楼 · 发布于 2024-09-27 09:27:40

heapq堆只不过是元素遵循特殊(非唯一)顺序的列表。在

您可以在上面使用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感兴趣。在

相关问题 更多 >

    热门问题