李万金 发表于 2020-9-7 20:54:55

python 代码疑惑

本帖最后由 李万金 于 2020-9-7 21:04 编辑

import heapq

class PriorityQueue:
    def __init__(self):
      self._queue = []
      self._index = 0

    def push(self, item, priority):
      heapq.heappush(self._queue, (-priority, self._index, item))
      self._index += 1

    def pop(self):
      return heapq.heappop(self._queue)[-1]
问题1:代码最后的[-1]是干什么的,我把-1改成2,没看出结果有什么变化
问题2:我上传的图中的q._queue的排序好像没什么规律,我看python关于heapq官方文档,应该从小到大排列吧?
纯萌新,还请指教

ba21 发表于 2020-9-7 21:22:06

>>> a =
>>> a[-1]
3
>>> a = (1,2,3)
>>> a[-1]
3

它就是这个意思。但凡看到变量后面[] 无非就是索引取值
页: [1]
查看完整版本: python 代码疑惑