我有名单:
mylist = [[3, "A", "X", "xyz", 0.93243],[43, "C", "X", "zyx", 0.23243],[13, "B", "X", "xyz", 0.43243]]
heapq.heapify(mylist)
mylist
[[3, 'A', 'X', 'xyz', 0.93243],
[43, 'C', 'X', 'zyx', 0.23243],
[13, 'B', 'X', 'xyz', 0.43243]]
当我想使用heapq.heappop(mylist)
弹出列表时。
将弹出的第一个项目是[3, 'A', 'X', 'xyz', 0.93243]
。我想,这是因为项目列表中的第一个值(3
)是最低值。
是否可能如果我想使用最后一个值index[4]
作为基础。弹出项目是基于列表中的最后一个元素?
我想要弹出项目时的预期输出,弹出的第一个项目为[43, 'C', 'X', 'zyx', 0.23243]
,因为index[4]
的值最低,为0.23243
答案 0 :(得分:1)
您的列表需要是实现自定义cmp函数的对象:
class MyObject():
...
... def __cmp__(self, other):
... return cmp(self.val, other.val)
...