Jak połączyć 2 posortowane tablice w Pythonie za pomocą heapq?

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

W tej sekcji zobaczymy, jak można połączyć dwie posortowane listy za pomocą modułu heapq w Pythonie. Na przykład, jeśli lista1 = [10, 20, 30, 40] i lista2 = [100, 200, 300, 400, 500], to po konkatenacji zwróci lista3 = [10, 20, 30, 40, 100, 200 , 300 , 400, 500]

Do wykonania tego zadania użyjemy modułu heapq. Ten moduł jest dostarczany z Pythonem jako standardowym modułem bibliotecznym. Dlatego musimy go zaimportować przed użyciem.

 import heapq 

Moduł heapq ma pewne właściwości. To jest jak poniżej &



metoda heapq.heapify (powtarzalna)

Służy do przekształcania iteracyjnego zbioru danych w strukturę danych sterty.

Metoda heapq.heappush (sterta, przedmiot)

Ta metoda służy do wstawiania elementu do sterty. Następnie ponownie skopiuj całą strukturę sterty.

Metoda heapq.heappop (sterta)

Ta metoda służy do zwracania i usuwania elementu ze szczytu sterty oraz wykonywania heapify na reszcie.




Metoda heapq.heappushpop (sterta, element)

Ta metoda służy do wstawiania i wklejania elementu do jedna instrukcja.

Metoda heapq.heapreplace (sterta, element)

Ta metoda służy do wstawiania i wklejania elementu do pojedynczej instrukcji. Usuwa element z katalogu głównego sterty, a następnie wstawia go do sterty.

Metoda heapq.nlargest (n, iterable, key = none)

Ta metoda jest używana do zwraca n największego elementu ze sterty.

Metoda heapq.nsmallest (n, powtarzalny, klucz = Brak)

Ta metoda służy do zwrócenia n najmniejszego elementu ze sterty.

Przykład kodu

 import heapq first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36] druga_lista = [42, 13, 69, 54, 15] pierwsza t_list = posortowana (pierwsza_lista) druga_lista = posortowana (druga_lista) print (`Pierwsza posortowana lista:` + str (pierwsza_lista)) print (`Druga posortowana lista:` + str (druga_lista)) final_list = lista (heapq.merge (pierwsza_lista, druga_lista)) print (`Ostateczna lista:` + str (final_list)) 

Wyjście

 Pierwsza posortowana lista: [12, 15, 20, 21, 36, 45, 63, 74, 95] Druga posortowana lista: [13, 15, 42, 54, 69] Finał lista: [12, 13, 15, 15, 20, 21, 36, 42, 45, 54, 63, 69, 74, 95]