Python “PriorityQueue”是否尊重元组的顺序?
我需要用一些数据维护PriorityQueue。数据的顺序不是我希望在PriorityQueue中维护的顺序(两种不同的顺序有不同的用途)。事实上,我希望元素在队列中的顺序由三个函数决定: 1) 评分函数A 2) 评分函数B 3) 元素添加到队列的顺序 为了保持队列的有序性,我写了如下内容:Python “PriorityQueue”是否尊重元组的顺序?,python,sorting,priority-queue,Python,Sorting,Priority Queue,我需要用一些数据维护PriorityQueue。数据的顺序不是我希望在PriorityQueue中维护的顺序(两种不同的顺序有不同的用途)。事实上,我希望元素在队列中的顺序由三个函数决定: 1) 评分函数A 2) 评分函数B 3) 元素添加到队列的顺序 为了保持队列的有序性,我写了如下内容: import queue s = State(...) id = s.immutableID pq = queue.PriorityQueue() counter = 0 priority = (A(s)
import queue
s = State(...)
id = s.immutableID
pq = queue.PriorityQueue()
counter = 0
priority = (A(s), B(s), counter)
pq.put( (priority, id) )
counter += 1
这显示了试图获取PriorityQueue以维持我想要的顺序背后的粗略策略。在后面的代码中,我创建了几个新的状态实例
,为它们的优先级打分,递增计数器,然后循环
如果我这样做,它基本上会对元组使用“字典排序”吗?也就是说,PriorityQueue是否会确定具有较早的第一坐标的所有元素最早插入,并且在连接中,具有较早的第二坐标的所有元素最早插入,依此类推
根据文档,我很确定答案是“是”,因为它使用了
sort
函数,sort
使用是,顺序将基于元组的排序,您称之为“字典排序”。根据网站上的文件
首先检索值最低的条目(值最低的条目是排序(列表(条目))[0])
返回的条目
排序,尤其是和,是保证的。是的,顺序将基于元组的顺序,您称之为“字典排序”。根据网站上的文件 首先检索值最低的条目(值最低的条目是排序(列表(条目))[0])返回的条目 而分类,尤其是和,是保证的