heapqを使用してPythonで2つのソートされた配列を連結する方法は?

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

このセクションでは、Pythonのheapqモジュールを使用して2つのソートされたリストを組み合わせる方法を説明します。たとえば、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モジュールにはいくつかのプロパティがあります。以下のようになります&

<! --ptnonline336-2->

heapq.heapifyメソッド(繰り返し可能)

反復データセットをヒープデータ構造に変換するために使用されます。

heapq.heappushメソッド(heap、item)

このメソッドは、アイテムをヒープに挿入するために使用されます。次に、ヒープ構造全体を再度コピーします。

heapq.heappopメソッド(ヒープ)

このメソッドは、ヒープの先頭からアイテムを返したり削除したり、残りのアイテムに対してヒープ化を実行したりするために使用されます。< / p>




heapq.heappushpopメソッド(ヒープ、要素)

このメソッドは、要素を挿入して貼り付けるために使用されます1つのステートメント。

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

このメソッドは、要素を1つのステートメントに挿入して貼り付けるために使用されます。ヒープルートから要素を削除してから、その要素をヒープに挿入します。

heapq.nlargest(n、iterable、key = none)メソッド

このメソッドは、次の目的で使用されます。ヒープから最大の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] firs t_list =ソート済み(first_list)second_list =ソート済み(second_list)print(`最初にソートされたリスト:` + str(first_list))print(`2番目にソートされたリスト:` + 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] 2番目にソートされたリスト:[13、15、42、54、69]最終リスト:[12、13、15、15、20、21、36、42、45、54、63、69、74、95]