Heapq kullanarak Python`da 2 sıralı dizi nasıl birleştirilir?

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

Bu bölümde, Python`da heapq modülü kullanılarak iki sıralı listenin nasıl birleştirilebileceğini göreceğiz. Örneğin, liste1 = [10, 20, 30, 40] ve liste2 = [100, 200, 300, 400, 500] ise, birleştirmeden sonra liste3 = [10, 20, 30, 40, 100, 200 değerini döndürür. , 300 , 400, 500]

Bu görevi gerçekleştirmek için heapq modülünü kullanacağız. Bu modül, standart bir kütüphane modülü olarak Python ile birlikte gelir. Bu nedenle, kullanmadan önce içe aktarmalıyız.

 import heapq 

Heapq modülünün bazı özellikleri vardır. Aşağıdaki gibidir &



heapq.heapify yöntemi (tekrarlanabilir)

Yinelemeli bir veri kümesini bir yığın veri yapısına dönüştürmek için kullanılır.

heapq.heappush yöntemi (yığın, öğe)

Bu yöntem, öbek içine bir öğe eklemek için kullanılır. Ardından tüm yığın yapısını tekrar kopyalayın.

heapq.heappop yöntemi (heap)

Bu yöntem, bir öğeyi yığının üstünden döndürmek ve kaldırmak ve geri kalanında yığınlama yapmak için kullanılır.




heapq.heappushpop yöntemi (yığın, öğe)

Bu yöntem, bir öğeyi içine eklemek ve yapıştırmak için kullanılır. bir deyim.

heapq.heapreplace yöntemi (heap, element)

Bu yöntem, bir öğeyi tek bir deyime eklemek ve yapıştırmak için kullanılır. Yığın kökünden bir öğeyi kaldırır, ardından öğeyi yığına ekler.

heapq.nlargest (n, yinelenebilir, anahtar = yok) yöntemi

Bu yöntem, öbekten en büyük n öğeyi döndürür.

Yöntem heapq.nsmallest (n, tekrarlanabilir, anahtar = Yok)

Bu yöntem öbekten en küçük n öğeyi döndürmek için kullanılır.

Kod örneği

 import heapq first_list = [45, 12, 63, 95, 74, 21, 20, 15, 36] second_list = [42, 13, 69, 54, 15] ilk t_list = sıralanmış (birinci_list) second_list = sıralanmış (ikinci_list) print (`İlk sıralı liste:` + str (ilk_list)) print (`İkinci sıralı liste:` + str (ikinci_liste)) final_list = liste (heapq.merge (ilk_liste, ikinci_list)) print (`Son liste:` + str (final_list)) 

Çıktı

<ön sınıf = " EnlighterJSRAW" data-enlighter-language = " python "> İlk sıralanan liste: [12, 15, 20, 21, 36, 45, 63, 74, 95] İkinci sıralanan liste: [13, 15, 42, 54, 69] Son liste: [12, 13, 15, 15, 20, 21, 36, 42, 45, 54, 63, 69, 74, 95]