In deze sectie zullen we zien hoe twee gesorteerde lijsten kunnen worden gecombineerd met behulp van de heapq-module in Python. Als lijst1 bijvoorbeeld = [10, 20, 30, 40] en lijst2 = [100, 200, 300, 400, 500], wordt na aaneenschakeling list3 = [10, 20, 30, 40, 100, 200 , 300 , 400, 500]
We zullen de heapq-module gebruiken om deze taak uit te voeren. Deze module wordt geleverd met Python als een standaard bibliotheekmodule. Daarom moeten we het importeren voordat we het kunnen gebruiken.
import heapq
De heapq-module heeft enkele eigenschappen. Het is zoals hieronder &
heapq.heapify methode (herhaalbaar)
Het wordt gebruikt om een iteratieve dataset om te zetten in een heap datastructuur.
De methode heapq.heappush (heap, item)
Deze methode wordt gebruikt om een item in de heap in te voegen. Kopieer vervolgens de hele heapstructuur opnieuw.
De methode heapq.heappop (heap)
Deze methode wordt gebruikt om een item terug te brengen en te verwijderen van de bovenkant van de heap en heapify uit te voeren op de rest.
De methode heapq.heappushpop (heap, element)
Deze methode wordt gebruikt om een element in te voegen en te plakken in één instructie.
De methode heapq.heapreplace (heap, element)
Deze methode wordt gebruikt om een element in een enkele instructie in te voegen en te plakken. Het verwijdert een element uit de heap root en voegt het element vervolgens in de heap.
De heapq.nlargest (n, iterable, key = none) methode
Deze methode wordt gebruikt om retourneert het n grootste element van de heap.
Methode heapq.nsmallest (n, herhaalbaar, sleutel = Geen)
Deze methode wordt gebruikt om het n kleinste element van de heap te retourneren.
Codevoorbeeld
import heapq first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36] second_list = [42, 13, 69, 54, 15] eerste t_list = gesorteerd (first_list) second_list = gesorteerd (second_list) print (`Eerste gesorteerde lijst:` + str (first_list)) print (`Tweede gesorteerde lijst:` + str (second_list)) final_list = list (heapq.merge (first_list, second_list)) print (`De definitieve lijst:` + str (final_list))
Uitvoer
Eerste gesorteerde lijst: [12, 15, 20, 21, 36, 45, 63, 74, 95] Tweede gesorteerde lijst: [13, 15, 42, 54, 69] De laatste lijst: [12, 13, 15, 15, 20, 21, 36, 42, 45, 54, 63, 69, 74, 95]