Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Python的heapq元组比较不能按预期工作?_Python_Tuples_String Comparison_Heapq - Fatal编程技术网

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

为什么Python的heapq元组比较不能按预期工作?,python,tuples,string-comparison,heapq,Python,Tuples,String Comparison,Heapq,所以在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

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

堆与排序列表不同。堆只保证元素不大于其子元素的值

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

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


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

Thx。这很有帮助。我是在大学里学的,但完全忘记了堆是通过创建一棵树来分类的。除非我使用heappop,否则堆列表实际上不会被排序。