我有这段代码:
q = PriorityQueue()
a = ((1, 1), 10, 0)
q.put(a)
newTuple = ((1,1), 8, 0)
res = any(newTuple[0] in item for item in q.queue) #res = true
目前,我正在检查priorityQueue中的任何元组中是否存在newTuple [0](即(1,1))。 我想改变代码,以便检查newTuple [0]是否在队列中,如果它确实是(并因此与某些元组'a'相关联),则用队列中的这个元组'a'替换newTuple如果newTuple [1](即8)小于a [1](即10)。
这可能吗?
答案 0 :(得分:1)
如果您想更灵活地访问和修改队列的值,也许您也可以尝试使用heapq而不是PriorityQueue
import heapq
heap = [((1, 1), 10, 0)]
heapq.heapify(heap)
for x in heap:
print x,
您可以搜索堆,因为它是一个列表,并直接替换它。这是一个很好的选择。