¿Cómo concatenar 2 matrices ordenadas en Python usando heapq?

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

En esta sección, veremos cómo se pueden combinar dos listas ordenadas usando el módulo heapq en Python. Por ejemplo, si lista1 = [10, 20, 30, 40] y lista2 = [100, 200, 300, 400, 500], luego de la concatenación devolverá lista3 = [10, 20, 30, 40, 100, 200 , 300 , 400, 500]

Usaremos el módulo heapq para realizar esta tarea. Este módulo viene con Python como un módulo de biblioteca estándar. Por lo tanto, debemos importarlo antes de usarlo.

 import heapq 

El módulo heapq tiene algunas propiedades. Es como a continuación &



método heapq.heapify (repetible)

Se utiliza para transformar un conjunto de datos iterativo en una estructura de datos de montón.

El método heapq.heappush (montón, elemento)

Este método se utiliza para insertar un elemento en el montón. A continuación, copie toda la estructura del montón de nuevo.

El método heapq.heappop (heap)

Este método se utiliza para devolver y eliminar un elemento de la parte superior del montón y ejecutar heapify en el resto.




El método heapq.heappushpop (montón, elemento)

Este método se utiliza para insertar y pegar un elemento en una declaración.

El método heapq.heapreplace (heap, elemento)

Este método se usa para insertar y pegar un elemento en una sola declaración. Elimina un elemento de la raíz del montón, luego inserta el elemento en el montón.

El método heapq.nlargest (n, iterable, key = none)

Este método se usa para devuelve el elemento n más grande del montón.

Método heapq.nsmallest (n, repetible, clave = Ninguno)

Este método se usa para devolver el elemento n más pequeño del montón.

Ejemplo de código

 import heapq first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36] segunda_lista = [42, 13, 69, 54, 15] primera t_lista = ordenada (primera_lista) segunda_lista = ordenada (segunda_lista) print (`Primera lista ordenada:` + str (primera_lista)) print (`Segunda lista ordenada:` + str (segunda_lista)) lista_final = lista (heapq.merge (primera_lista, segunda_lista)) print (`La lista final:` + str (lista_final)) 

Salida

 Primera lista ordenada: [12, 15, 20, 21, 36, 45, 63, 74, 95] Segunda lista ordenada: [13, 15, 42, 54, 69] El final lista: [12, 13, 15, 15, 20, 21, 36, 42, 45, 54, 63, 69, 74, 95]