所以我有一些列表被添加到堆中;例如:
n = [[1, 5, 93],
[2, 6, 44],
[4, 7, 45],
[6, 3, 12]]
heapq.heapify(n)
print(n)
这个函数根据列表的第一个元素进行比较和排序。
我的问题是,如何让heapq根据每个列表的第三个元素进行排序?例如,上面的列表将按照以下顺序从heapq中访问:
[[6, 3, 12],
[2, 6, 44],
[4, 7, 45],
[1, 5, 93]]
sorted(your_list_of_lists,key=lambda x:x[2])
- DYZsorted()
是最快的选择。但如果您需要在多次push
和pop
操作中维护一个有序结构,则使用heapq
更为合适。 - AChampion