我创建了一个名为Element的新的类o对象,它有很多值“degree”
class Element(object):
def __init__(self, name, i):
self.name = name
self.degree = i
# some other values
#some other functions
def __cmp__(self, other):
return cmp(self.degree, other.degree)
我想创建一个包含以下元素的优先级队列:
^{pr2}$程序将打印:
element3 11
element1 23
element2 45
但我想要:
element2 45
element1 23
element3 11
所以我想说,度值越大的元素优先级越高,优先考虑。 第二个问题是:如果两个元素的度值相同,它们将按什么顺序被取?在
您可以使用此方法进行比较:
这将使
element1 < element2
如果element1.degree > element2.degree
您可以修改
Element
类的比较方法以颠倒顺序:否定
^{pr2}$cmp
的返回将反转队列,因为__cmp__
根据比较结果返回正、负或零:相关问题 更多 >
编程相关推荐