python heapqモジュールで大きなルートスタックを構築

638 ワード

pythonのheapqモジュールはスタックを迅速に構築できます.ただheapqは小根スタックしか構築できず、大根スタックは構築できません.
import heapq
data2 = [1,5,3,2,9,5]
heapq.heapify(data2)
print(data2)
#  :[1, 2, 3, 5, 9, 5]

大きな根の山の作り方:
import heapq
ll=[1,4,2,3,5]
print(ll,'    ')
heapq.heapify(ll)
print(ll,'   ')
#          
newl = [(-i, ll[i]) for i in range(len(ll))]
print(newl,'         ')
heapq.heapify(newl) #          ,             ,             
#                 ,      
max_heap = list()
while newl:
    _, s = heapq.heappop(newl) #      newl      
    max_heap.append(s)
print(max_heap,'      ')