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]