Nesta seção, veremos como duas listas classificadas podem ser combinadas usando o módulo heapq em Python. Por exemplo, se lista1 = [10, 20, 30, 40] e lista2 = [100, 200, 300, 400, 500], então após a concatenação retornará lista3 = [10, 20, 30, 40, 100, 200 , 300 , 400, 500]
Usaremos o módulo heapq para realizar esta tarefa. Este módulo vem com o Python como um módulo de biblioteca padrão. Portanto, devemos importá-lo antes de usá-lo.
import heapq
O módulo heapq possui algumas propriedades. É como abaixo &
método heapq.heapify (repetível)
Ele é usado para transformar um conjunto de dados iterativo em uma estrutura de dados heap.
O método heapq.heappush (heap, item)
Este método é usado para inserir um item no heap. Em seguida, copie toda a estrutura do heap novamente.
O método heapq.heappop (heap)
Esse método é usado para retornar e remover um item do topo do heap e executar heapify no restante.
O método heapq.heappushpop (heap, elemento)
Este método é usado para inserir e colar um elemento em uma instrução.
O método heapq.heapreplace (heap, elemento)
Este método é usado para inserir e colar um elemento em uma única instrução. Ele remove um elemento da raiz do heap e, em seguida, insere o elemento no heap.
O método heapq.nlargest (n, iterable, key = none)
Este método é usado para retorna o n maior elemento do heap.
Método heapq.nsmallest (n, repetível, chave = Nenhum)
Este método é usado para retornar o n menor elemento do heap.
Exemplo de código
import heapq first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36] second_list = [42, 13, 69, 54, 15] firs t_list = ordenado (first_list) second_list = ordenado (second_list) print (`Primeira lista ordenada:` + str (first_list)) print (`Segunda lista ordenada:` + str (second_list)) final_list = list (heapq.merge (first_list, second_list)) print (`A lista final:` + str (final_list))
Saída
Primeira lista classificada: [12, 15, 20, 21, 36, 45, 63, 74, 95] Segunda lista classificada: [13, 15, 42, 54, 69] O final lista: [12, 13, 15, 15, 20, 21, 36, 42, 45, 54, 63, 69, 74, 95]