Python Priority Queue: A Guide
Python √∂ncelik sƒ±rasƒ±, verileri belirli bir sƒ±rada depolar. Python’da bir √∂ncelik sƒ±rasƒ± uygulamanƒ±n iki yolu vardƒ±r: kuyruk sƒ±nƒ±fƒ±nƒ± kullanmak ve heapq modulunu kullanmak.
Verileri listedeki her bir öğenin değerlerine göre sıralamak isteyebilirsiniz. Örneğin, en yuksek değerin listede ilk, en duşuk değerin ise listede en son görunmesini isteyebilirsiniz.
√ñncelik sƒ±ralarƒ±nƒ±n geldiƒüi yer burasƒ±dƒ±r. √ñncelik sƒ±rasƒ± bir veri yapƒ±sƒ±dƒ±r. anahtarlarƒ±nƒ±n deƒüerine g√∂re artan sƒ±rada veri depolar. Bu, sƒ±radaki en kuçuk ve en buyuk deƒüere kolayca eri≈ümenizi saƒülar.
Bu eƒüitici, √∂ncelik sƒ±ralarƒ± olu≈üturmak için neden bir liste kullanmamanƒ±z gerektiƒüini tartƒ±≈üacaktƒ±r. Size bir Python √∂ncelik sƒ±rasƒ± olu≈üturmak için kullanabileceƒüiniz iki etkili yakla≈üƒ±m daha g√∂stereceƒüiz.
Python Öncelik Sırası nedir?
Öncelik sıraları, sıranın değiştirilmiş bir versiyonudur. hangi öğenin en yuksek önceliğe sahip olduğu sırayla veri. Öncelik kuyruğundaki her bir öğenin önceliği, öğenin değerine bağlı olarak kararlaştırılır.
Bilgisayar biliminde, sƒ±ralar, √∂ƒüeleri ilk giren ilk 烱kar (FIFO) duzeninde depolayan veri yapƒ±larƒ±dƒ±r. . Bu yapƒ±yƒ± kullanmanƒ±n yardƒ±mcƒ± olabileceƒüi birkaç senaryo vardƒ±r.
√ñrneƒüin, bir restoran için sipari≈ü izleme uygulamasƒ± olu≈üturduƒüunuzu varsayalƒ±m. √ñnce sipari≈ü veren ki≈üiye, sƒ±radaki sipari≈ü verenden √∂nce servis yapƒ±lmalƒ±dƒ±r. Sipari≈üleri takip etmek için bir kuyruk kullanmak isteyebilirsiniz.
Python’da bir √∂ncelik sƒ±rasƒ± tanƒ±mlamanƒ±n iki yolu vardƒ±r:
Katƒ±lƒ±mcƒ±larƒ±n %81’i bundan daha emin hissettiklerini belirtti. bir eƒüitim kampƒ±na katƒ±ldƒ±ktan sonra teknik i≈ü beklentileri. Bugun bir eƒüitim kampƒ± ile e≈üle≈ütirin.
Ortalama bir eƒüitim kampƒ± mezunu, bir eƒüitim kampƒ±na ba≈ülamaktan ilk i≈üini bulmaya kadar, kariyer geçi≈üinde altƒ± aydan az zaman harcadƒ±.
Bir öncelik sırası tanımlayabilirsiniz. bir liste yapısı kullanarak. Ancak bu strateji PriorityQueue kuyruk sınıfını veya heapq modulunu kullanmaktan daha az verimlidir.
Priority Queue Python: tail.PriorityQueue
queue.PriorityQueue class bir Python √∂ncelik sƒ±rasƒ± olu≈üturur. Bu sƒ±nƒ±f, Python kuyruk kitaplƒ±ƒüƒ±nƒ±n bir parçasƒ±dƒ±r. Bu sƒ±nƒ±fƒ± kullanmak için kuyruk kitaplƒ±ƒüƒ±nƒ± içe aktarmanƒ±z gerekir. PriorityQueue’dan bir √∂ƒüeyi almak için get() y√∂ntemini kullanabilirsiniz.
PriorityQueue sƒ±nƒ±fƒ±na eri≈ümek için, bunu Python içe aktarma ifadesi:
Diyelim ki yerel bir konserde bilet sahipleri için bir √∂ncelik sƒ±rasƒ± olu≈üturmak istiyoruz. Bunu ≈üu kodu kullanarak yapabiliriz:
Kodumuz şunu döndurur:
Kodumuzda, √∂nce PriorityQueue sƒ±nƒ±fƒ±nƒ± queue kitaplƒ±ƒüƒ±ndan içe aktarƒ±yoruz, ardƒ±ndan ticket_holders adlƒ± bir √∂ncelik sƒ±rasƒ±. Ardƒ±ndan, bir biletle ili≈ükili bilet numaralarƒ±nƒ± ve adlarƒ± saklayan √∂ncelik sƒ±ramƒ±za uç demet ekleriz.
Bir Python while d√∂ngusu kullanƒ±rƒ±z ticket_holders √∂ncelik kuyruƒüundaki her √∂ƒüeyi g√∂zden geçirmek için . Ardƒ±ndan, get() kullanarak bu √∂ƒüeyi alƒ±rƒ±z.
queue.PriorityQueue y√∂ntemi verimli ve kullanƒ±mƒ± kolaydƒ±r, bu da onu harika bir seçim yapar bir √∂ncelik sƒ±rasƒ± olu≈üturmanƒ±z gerektiƒüinde.
Öncelik Sırası Python heapq Modulu
Heapq modulu, bir Python öncelik sırası tanımlamanıza izin verir. Bir heapq veri yapısı, öğeleri öncelik sırasına göre kaldırır. Heapq yapısında en duşuk değer en duşuk önceliğe ve en yuksek değer en yuksek önceliğe sahiptir.