English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Pythonでheapqを使用して2つのソートされた配列を統合する方法

このセクションでは、Pythonのheapqモジュールを使用して2つのソートされたリストを統合する方法を見ていきます。例えば、リスト1 = [10、20、30、40]そしてリスト2 = [100、200,300,400,500],それを統合するとリストが返されます3 = [10、20、30、40、100、 200、300、400、500]

このタスクを実行するために、heapqモジュールを使用します。このモジュールはPythonの標準ライブラリモジュールとして付属しており、使用する前にインポートする必要があります。

import heapq

heapqモジュールにはいくつかの属性があります。以下の通りです-

メソッド heapq.heapify(iterable)

これは、イテラブルデータセットをヒープデータ構造に変換するために使用されます。

メソッド heapq.heappush(heap, element)

このメソッドは、要素を挿入し、その後、整个のヒープ構造を再構築します。

メソッド heapq.heappop(heap)

このメソッドは、ヒープの先頭から要素を返し、削除し、残りの要素に対してheapifyを実行します。

メソッド heapq.heappushpop(heap, element)

このメソッドは、1つの文で要素を挿入および弹出します。

メソッド heapq.heapreplace(heap, element)

このメソッドは、1つの文で要素を挿入および弹出します。要素をヒープの根から削除し、その要素を挿入します。

メソッド heapq.nlargest(n、イテラブル、キー=無)

このメソッドは、ヒープからn個の最大の要素を返します。

メソッド heapq.nsmallest(n、イテラブル、キー=無)

このメソッドは、ヒープからn個の最小の要素を返します。

サンプルコード

import heapq
first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36]
second_list = [42, 13, 69, 54, 15]
first_list = sorted(first_list)
second_list = sorted(second_list)
print('第1位に並べ替えたリスト: ',) + str(first_list))
print('第2位に並べ替えたリスト: ',) + str(second_list))
final_list = list(heapq.merge(first_list, second_list))
print('最終リスト: ',) + str(final_list))

出力結果

第1位に並べ替えたリスト: [12, 15, 20, 21, 36, 45, 63, 74, 95]
第2位に並べ替えたリスト: [13, 15, 42, 54, 69]
最終リスト: [12, 13, 15, 15, 20, 21, 36, 42, 45, 54, 63, 69, 74, 95]