在本節中,我們將了解如何使用 Python 中的 heapq 模塊組合兩個排序列表。例如,如果 list1 = [10, 20, 30, 40] 和 list2 = [100, 200, 300, 400, 500],那麼在串聯後它將返回 list3 = [10, 20, 30, 40, 100, 200 , 300 , 400, 500]
我們將使用 heapq 模塊來完成這個任務。該模塊作為標準庫模塊隨 Python 一起提供。因此,我們必須在使用前導入它。
import heapq
heapq模塊有一些屬性。如下所示 &
heapq.heapify方法(可重複)
用於將迭代數據集轉化為堆數據結構。
heapq.heappush 方法(heap, item)
該方法用於向堆中插入一個item。然後再次復制整個堆結構。
heapq.heappop方法(heap)
該方法用於返回並從堆頂移除一個item,並對其餘部分執行heapify。
heapq.heappushpop方法(heap, element)
該方法用於插入和粘貼一個元素到一個語句。
heapq.heapreplace 方法(heap, element)
此方法用於將元素插入和粘貼到單個語句中。它從堆根中移除一個元素,然後將該元素插入到堆中。
heapq.nlargest(n, iterable, key = none) 方法
該方法用於返回堆中第n個最大的元素。
方法heapq.nsmallest(n, repeatable, key = None)
該方法用於返回堆中的第n個最小元素。
代碼示例
import heapq first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36] second_list = [42, 13, 69, 54, 15] firs t_list = sorted (first_list) second_list = sorted (second_list) print (`第一個排序列表:` + str (first_list)) print (`第二個排序列表:` + str (second_list)) final_list = list (heapq.merge (first_list, second_list)) print (`最終列表:` + str (final_list))
輸出
第一個排序列表:[12, 15, 20, 21, 36, 45, 63, 74, 95] 第二個排序列表: [13, 15, 42, 54, 69]決賽列表:[12、13、15、15、20、21、36、42、45、54、63、69、74、95]