Что такое модуль heapq Python?

Я пытался"Heapq" и пришел к выводу, что мои ожидания отличаются от того, что я вижу на экране. Мне нужен кто-то, чтобы объяснить, как это работает и где это может быть полезно.

Из книгиМодуль Python недели в соответствии с пунктом2.2 Сортировка это написано

Если вам нужно поддерживать отсортированный список при добавлении и удалении значений, проверьте heapq. Используя функции из heapq для добавления или удаления элементов из списка, вы можете поддерживать порядок сортировки списка с минимальными издержками.

Вот что я делаю и получаю.

import heapq
heap = []

for i in range(10):
    heap.append(i)

heap
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

heapq.heapify(heap)    
heapq.heappush(heap, 10)    
heap
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

heapq.heappop(heap)
0    
heap
[1, 3, 2, 7, 4, 5, 6, 10, 8, 9] <<< Why the list does not remain sorted?

heapq.heappushpop(heap, 11)
1
heap
[2, 3, 5, 7, 4, 11, 6, 10, 8, 9] <<< Why is 11 put between 4 and 6?

Итак, как вы видите, список «кучи» вообще не отсортирован, фактически, чем больше вы добавляете и удаляете элементы, тем более загроможденными они становятся. Заданные значения занимают необъяснимые позиции. Что происходит?

Ответы на вопрос(3)

Ваш ответ на вопрос