Как объединить 2 отсортированных массива в Python с помощью heapq?

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

В этом разделе мы увидим, как можно объединить два отсортированных списка с помощью модуля heapq в Python. Например, если список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 (повторяемый)

Он используется для преобразования итеративного набора данных в структуру данных кучи.

Метод heapq.heappush (куча, элемент)

Этот метод используется для вставки элемента в кучу. Затем снова скопируйте всю структуру кучи.

Метод heapq.heappop (куча)

Этот метод используется для возврата и удаления элемента из вершины кучи и выполнения кучи для остальных.




Метод heapq.heappushpop (куча, элемент)

Этот метод используется для вставки и вставки элемента в один оператор.

Метод heapq.heapreplace (куча, элемент)

Этот метод используется для вставки и вставки элемента в один оператор. Он удаляет элемент из корня кучи, а затем вставляет этот элемент в кучу.

Метод 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]