如何使用 heapq 在 Python 中連接 2 個排序數組?

| | | | | | | | | | | | | | | | | | | |

在本節中,我們將了解如何使用 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]