Python deque

Python işlevleri ve meth

Python kuyruğu, ilk giren ilk çıkar FIFO kuralını kullanan bir liste oluşturmanıza izin veren yerleşik bir kitaplıktır. Python deque, karşıt kuralı, LIFO kuyruğunu veya son giren ilk çıkar kullanır. Her ikisi de yığınlar ve kuyruklar üzerinde çalışır.

Python'da çalışırken, liste. Örneğin, bir konferansa yapılan kayıtları izleyen bir program yazdığınızı varsayalım. Listeye birisini eklediğimizde, onu kuyruğun en arkasına yerleştirmek istiyorsunuz ve ardından öndekiler girmeye başladığında onların da kuyrukta ilerlemesini istiyorsunuz.

Bir sıra var. Python'da şu tür sorunlarda size yardımcı olmak için tasarlanmış yerleşik kitaplık: kuyruklar. Kuyruklar Python'daki yığınlara benzer, temel fark bir kuyrukta en son eklenen öğeyi kaldırmanızdır. Öte yandan, bir yığında, en son eklenen öğeyi kaldırırsınız.

Bu eğiticide, Python'daki kuyrukların temellerini ve birini nasıl uygulayabileceğinizi inceleyeceğiz.




Queue Primer

Python listesiyle çalışırken yararlıdır, almak istediğinizde kuyruklar yararlıdır listenin dışındaki şeyler, onları yerleştirdiğiniz sırayla. Önceki örneğimizi kullanmak için, bir konferanstayken, ilk kayıt olduğunuzda satırın arkasında. Ancak listedeki kişiler girmeye başladığında, listede daha da yukarı çıkmalısınız.


Sıralar, sıraların rastgele erişim olmadığı ve sıralarda depolanan verilerin belirli bir sıraya sahip olduğu dizilerden ve listelerden farklıdır Bu nedenle, bir kuyruğa bir öğe eklemek isterseniz, sonuna eklenecektir. Buna ilk giren, ilk çıkar veya FIFO kuyruğu denir. kısaca.

Python'da standart bir listeyi sıra olarak kullanabilirsiniz. Ancak, öğe ekleyip çıkarıyorsanız listeler oldukça yavaş olabilir, çünkü listenin başındaki öğeleri değiştirmek, tüm listelerin taşınmasını gerektirir. listedeki diğer öğeler aşağıdadır. Bu nedenle, ilk giren son çıkar listesi uygulamanız gerekiyorsa bir sıra kullanmalısınız.




Python Queue

Peki, Python'da bir kuyruğu nasıl uygularsınız? bunu yapmak için, ma yapmalıyız yerleşik kuyruk kitaplığını kullanın. Kuyruk modülü, kuyruklar için bir dizi faydalı sınıf içerir, ancak bu eğitim için queue.Queue sınıfına odaklanacağız.

Katılımcıların %81'i daha fazla hissettiklerini belirtti. Bir eğitim kampına katıldıktan sonra teknik iş olanakları konusunda kendilerine güveniyorlar. Bugün 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 daha az zaman harcadı.

Diyelim ki biz Yerel sinemaya gitmek ve en son filmi izlemek isteyen insanları izleyen bir program oluşturuyorlar. Filmi izlemek isteyenlerin bekleme listesini takip etmek için bir sıra kullanabiliriz.

Öncelikle sıra sınıfımızı tanımlamamız gerekiyor. Bunu şu kodu kullanarak yapabiliriz:

kuyruktan içe aktarma Queue waitlist = Queue()

Artık kuyruğumuzu oluşturmaya hazırız. put() işlevi, verilerin kuyruğa kodlanmasına izin verir. Aşağıdaki kodda, filmi izlemek için yeni kaydolan beş kişiyi bekleme listesine ekleyeceğiz:

waitlist.put('Erin') waitlist.put('Samantha') waitlist.put('Joe') waitlist.put('Martin') waitlist.put('Helena')

Şimdi sıraya beş ismimizi ekledik. Sıramızda ilk sırada Erin, ardından Samantha ve son olan Helena'ya ulaşana kadar böyle devam etti. Bunu get() işlevini kullanarak şu şekilde gösterebiliriz:

 print(waitlist.get())

Kodumuz şunu döndürür:

Erin

Gördüğünüz gibi, Erin sıramızın ilki. Kuyruktaki ilk iki ismi yazdırmak isteseydik, get() fonksiyonunu iki kere kullanırdık:

print(waitlist.get()) print(waitlist.get())

Kodumuz şunu döndürür:

Peki ya sıramızın her iki ucuna da bir dizi öğe eklemek ve çıkarmak istersek? Burada deque işlevi devreye girer. deque kullanarak, kuyruğun başından veya sonundan öğeler ekleyip çıkarabileceğimiz çift uçlu bir kuyruk oluşturabiliriz. Deque'ler son-in,ilk çıkar veya kısaca LIFO'dur.


Yukarıdakiyle aynı örneği kullanalım: bir film için bekleme listesindeki adları saklamak. İlk olarak, deque işlevimizi bildireceğiz:

koleksiyonlardan import deque waitlist = deque()

Artık deque'imizi başlattık, listemizi ekleyebiliriz deque için bekleme listesine alınan isimler:

waitlist.append('Erin') waitlist.append('Samantha') waitlist.append('Joe') waitlist.append('Martin') waitlist.append('Helena')

Gördüğünüz gibi, append()< kullandık /code> işlevi, bir öğeyi kuyruğumuza koymak için kullanılır.Bekleme listemizde saklanan değerleri görmek için aşağıdaki kodu kullanabiliriz:

print(bekleme listesi)

Kodumuz th değerini döndürür e aşağıdaki:

deque(['Erin', 'Samantha', 'Joe', 'Martin', 'Helena'])

Gördüğünüz gibi, verilerimiz deque'imize eklediğimiz sırayla saklandı. Peki ya ilk öğeyi kuyruğumuzdan çıkarmak istersek? Bu amacı gerçekleştirmek için popleft() fonksiyonunu kullanabiliriz. İşte bir örnek:

waitlist.popleft() print(bekleme listesi)

Kodumuz, listemizdeki ilk öğeyi kaldırdı — Erin — ve şunu döndürür:

deque(['Samantha', 'Joe', 'Martin', 'Helena '])

Dequemizdeki tüm öğeleri kaldırmak istiyorsak, clear() işlevini kullanabiliriz:

deque.clear() print(bekleme listesi)

Kodumuzun sonucu aşağıdaki gibidir:

deque([])

Gördüğünüz gibi deque'imiz boş ama nesne hala var. 




Sonuç

İşte bu kadar! Bu makalede, kuyrukların, verileri depolamak için ilk giren ilk çıkar depolama yaklaşımını benimsemenize olanak tanıyan bir tür veri yapısı olduğunu tartıştık. Sıra kullanımına bir örnek, yeni bir ürün için bekleme listesi tutmak olabilir.

"Python.Engineering hayatıma en çok ihtiyacım olduğu anda girdi ve hızlı bir şekilde bir bootcamp ile eşleşmeme yardımcı oldu. Mezun olduktan iki ay sonra, ben hayattaki değerlerim ve hedeflerim ile uyumlu hayalimdeki işi buldum!"

Venus, Rockbot'ta Yazılım Mühendisi

Ayrıca bunun nasıl yapılacağını da tartıştık. sıranıza öğeler ekleyip kaldırabileceğiniz çift uçlu bir sıra oluşturmak için deque kullanabilirsiniz. Artık kendi sorgularınızı ve taleplerinizi yazmaya hazırsınız!


Python, çeşitli profesyonel programlama ortamlarında kullanılır. ücretsiz Python.Engineering uygulaması bugün Python'un hayalinizdeki teknoloji kariyerine adım atmanıza nasıl yardımcı olabileceğini öğrenmek için !





Python deque: StackOverflow Questions