在 Python 中,如何使优先级队列弹出一个对象的多个值?
In Python, how do I make a Priority Queue pop off multiple values of an object?
我有一个 class 对象的优先级队列。在我的 class 定义中,我有:
def __lt__(self, other):
return self.fn < other.fn
如果有多个对象具有相同的 fn
值,我该如何合并一个 'tie breaker'?换句话说,像这样:
def __lt__(self, other):
return self.fn < other.fn and self.gn < other.gn
您可以添加显式检查两个 fn
字段之间的相等性,仅检查 gn
它们是否相等:
def __lt__(self, other):
if self.fn != other.fn:
return self.fn < other.fn
return self.gn < other.gn
我有一个 class 对象的优先级队列。在我的 class 定义中,我有:
def __lt__(self, other):
return self.fn < other.fn
如果有多个对象具有相同的 fn
值,我该如何合并一个 'tie breaker'?换句话说,像这样:
def __lt__(self, other):
return self.fn < other.fn and self.gn < other.gn
您可以添加显式检查两个 fn
字段之间的相等性,仅检查 gn
它们是否相等:
def __lt__(self, other):
if self.fn != other.fn:
return self.fn < other.fn
return self.gn < other.gn