为什么Python的heapq元组比较不能按预期工作?

2024-04-27 19:08:42 发布

您现在位置:Python中文网/ 问答频道 /正文

所以在Python中,当我键入

from heapq import heappush
a=[]
heappush(a,('art zero', 'let3 art zero'))
heappush(a,('own kit dig', 'let2 own kit dig'))
heappush(a,('art can', 'let1 art can'))
print(a)

它给

[('art can', 'let1 art can'), ('own kit dig', 'let2 own kit dig'), ('art zero', 'let3 art zero')]

难道不是“自己的装备狗”>;'零号艺术?为什么heapq中的元组比较在这里不起作用


Tags: fromimport键入cankitprintheapqzero
1条回答
网友
1楼 · 发布于 2024-04-27 19:08:42

堆与排序列表不是一回事。堆只保证元素不大于其子元素的值

您正在比较的两个值是同级值。堆中的同级值之间没有特定的关系。你能知道的唯一一件事是他们都不比他们的父母差

完整地说,在堆中,索引i处的值的子级位于索引2i+12i+2

当您从堆中获取heappop值时,您将以正确的顺序获取它们

相关问题 更多 >