Come concatenare 2 array ordinati in Python usando heapq?

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

In questa sezione vedremo come combinare due elenchi ordinati usando il modulo heapq in Python. Ad esempio, se list1 = [10, 20, 30, 40] e list2 = [100, 200, 300, 400, 500], dopo la concatenazione restituirà list3 = [10, 20, 30, 40, 100, 200 , 300 , 400, 500]

Utilizzeremo il modulo heapq per eseguire questo compito. Questo modulo viene fornito con Python come modulo di libreria standard. Pertanto, dobbiamo importarlo prima di usarlo.

 import heapq 

Il modulo heapq ha alcune proprietà. È come di seguito &



metodo heapq.heapify (ripetibile)

Viene utilizzato per trasformare un set di dati iterativo in una struttura di dati heap.

Il metodo heapq.heappush (heap, elemento)

Questo metodo viene utilizzato per inserire un elemento nell`heap. Quindi copia di nuovo l`intera struttura dell`heap.

Il metodo heapq.heappop (heap)

Questo metodo viene utilizzato per restituire e rimuovere un elemento dalla parte superiore dell`heap ed eseguire l`heapify sul resto.




Il metodo heapq.heappushpop (heap, elemento)

Questo metodo viene utilizzato per inserire e incollare un elemento in un`istruzione.

Il metodo heapq.heapreplace (heap, elemento)

Questo metodo viene utilizzato per inserire e incollare un elemento in una singola istruzione. Rimuove un elemento dalla radice dell`heap, quindi inserisce l`elemento nell`heap.

Il metodo heapq.nlargest (n, iterable, key = none)

Questo metodo viene utilizzato per restituisce l`n elemento più grande dall`heap.

Metodo heapq.nsmallest (n, repeatable, key = None)

Questo metodo viene utilizzato per restituire l`n elemento più piccolo dall`heap.

Esempio di codice

 import heapq first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36] seconda_lista = [42, 13, 69, 54, 15] prima lista_t = ordinata (prima_lista) seconda_lista = ordinata (seconda_lista) print (`Prima lista ordinata:` + str (prima_lista)) print (`Seconda lista ordinata:` + str (secondo_elenco)) elenco_finale = elenco (heapq.merge (elenco_primo, elenco_secondo)) print (`L`elenco finale:` + str (elenco_finale)) 

Output

 Primo elenco ordinato: [12, 15, 20, 21, 36, 45, 63, 74, 95] Secondo elenco ordinato: [13, 15, 42, 54, 69] Il finale elenco: [12, 13, 15, 15, 20, 21, 36, 42, 45, 54, 63, 69, 74, 95]