Comment concaténer 2 tableaux triés en Python en utilisant heapq ?

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

Dans cette section, nous verrons comment deux listes triées peuvent être combinées à l`aide du module heapq en Python. Par exemple, si list1 = [10, 20, 30, 40] et list2 = [100, 200, 300, 400, 500], alors après concaténation, il retournera list3 = [10, 20, 30, 40, 100, 200 , 300 , 400, 500]

Nous allons utiliser le module heapq pour accomplir cette tâche. Ce module est livré avec Python en tant que module de bibliothèque standard. Par conséquent, nous devons l`importer avant de l`utiliser.

 import heapq 

Le module heapq a certaines propriétés. C`est comme ci-dessous &



Méthode heapq.heapify (répétable)

Elle est utilisée pour transformer un ensemble de données itératif en une structure de données en tas.

La méthode heapq.heappush (heap, item)

Cette méthode est utilisée pour insérer un élément dans le tas. Copiez ensuite à nouveau toute la structure du tas.

La méthode heapq.heappop (tas)

Cette méthode est utilisée pour renvoyer et supprimer un élément du haut du tas et effectuer un heapify sur le reste.




La méthode heapq.heappushpop (tas, élément)

Cette méthode est utilisée pour insérer et coller un élément dans une instruction.

La méthode heapq.heapreplace (tas, élément)

Cette méthode est utilisée pour insérer et coller un élément dans une seule instruction. Il supprime un élément de la racine du tas, puis insère l`élément dans le tas.

La méthode heapq.nlargest (n, iterable, key = none)

Cette méthode est utilisée pour renvoie le n plus grand élément du tas.

Méthode heapq.nsmallest (n, répétable, clé = Aucun)

Cette méthode est utilisée pour renvoyer le n plus petit élément du tas.

Exemple de code

 import heapq first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36] second_list = [42, 13, 69, 54, 15] premier t_list = trié (first_list) second_list = trié (second_list) print (`Première liste triée :` + str (first_list)) print (`Deuxième liste triée :` + str (second_list)) final_list = list (heapq.merge (first_list, second_list)) print (`La liste finale :` + str (final_list)) 

Sortie

 Première liste triée : [12, 15, 20, 21, 36, 45, 63, 74, 95] Deuxième liste triée : [13, 15, 42, 54, 69] Le final liste : [12, 13, 15, 15, 20, 21, 36, 42, 45, 54, 63, 69, 74, 95]