为什么Python的heapq的元组比较不能正常工作?[重复]

问题描述 投票:0回答:1

所以在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中的元组比较在这里不起作用?

python tuples string-comparison heapq
1个回答
1
投票

堆和排序列表不是一回事。一个堆只保证一个元素的值不大于它的 孩子.

您要比较的两个值是 同胞 值。兄弟姐妹之间的价值观在一个堆里没有特别的关系。唯一可以知道的是,它们都不小于它们的父值。

完整地说,在一个堆中,一个值的子代在index i 在指数 2i+12i+2.

当你想 heappop 从你的堆中取出值,你 让他们在正确的顺序,虽然。

© www.soinside.com 2019 - 2024. All rights reserved.