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