Pythonda Deque – Örneklerle Eğitim

Bir Python geliştiricisiyseniz, muhtemelen bir deque veya "çift uçlu kuyruk" duymuşsunuzdur. Uygulamanızın verimliliğini artırabilecek ve performansını hızlandırabilecek güçlü bir araçtır.

Deque, kabın her iki ucundan daha hızlı ekleme ve çıkarma işlemleri sunan özel bir kapsayıcı veri türüdür. Bu, onu bilgi işlemde yaygın olarak kullanılan liste benzeri veri türleri olan kuyrukları ve yığınları uygulamak için değerli bir araç haline getirir.

Çeşitli uygulamalar için çok yararlı olan düşük seviyeli ve yüksek düzeyde optimize edilmiş bir veri yapısıdır. Bir Python programcısı olarak, cephaneliğinizde olmasını isteyeceğiniz bir araç deque'dir.

Deques hakkında daha fazla bilgi edinmek ve bunları Python kodunuza nasıl uygulayabileceğinizi öğrenmek için okumaya devam edin !

Python'da Deque – Örneklerle Eğitim

İçindekiler

Deque nedir?

Python'da veya genel olarak bilgisayar programcılığında yeniyseniz, deque'nin ne olduğunu merak ediyor olabilirsiniz. Deque, “ çift uçlu kuyruk ” anlamına gelir ve kuyruğun her iki ucuna öğe ekleyip çıkarmanıza izin veren bir veri yapısıdır.

Normal bir kuyruğa benzer, ancak sıranın hem önünden hem de arkasından öğe ekleyip çıkarabilme esnekliğine sahiptir. Python'un deque'si çift bağlantılı bir liste olarak uygulandığı için bu mümkündür.

Python'da deque'ler, bir deque sınıfı sağlayan collections modülü kullanılarak uygulanır. Bu sınıf, deque'den öğe eklemek ve çıkarmak için bir dizi yöntem sağlar.

Ayrıca, deque'yi döndürmek veya tamamen temizlemek gibi diğer yararlı işlemler için işlevler sağlar.

Bir Python Deque'nin Özellikleri

Ekleme ve çıkarma işlemleri için O(n) zaman karmaşıklığına sahip normal bir listenin aksine, bir deque O(1) zaman karmaşıklığı sağlar. Bu, bu okuma ve yazma işlemleri için önemli ölçüde daha hızlı ve belleği verimli hale getirir.

İşte bilmeniz gereken bazı Python deque özellikleri:

  • Değişken bir veri yapısıdır.

  • Tamsayılar, demetler, diziler vb. gibi birden çok veri türünü depolayabilir.

  • İndekslemeyi destekler, ancak dilimleme işlemlerini desteklemez.

  • Yerinde sıralamayı desteklemiyor

  • , sorted() , len() , reverse() , vb. gibi ortak yerleşik yinelenebilir işlevleri ve işlemleri destekler.

A Deque Uygulamaları

Deques çeşitli nedenlerle yararlıdır. Örneğin, her ikisi de bilgisayar biliminde yaygın olarak kullanılan veri yapıları olan bir kuyruğu veya yığını uygulamak için kullanılabilirler.

Akış uygulamalarında veya verilere hızlı erişim gerektiren sistemlerde olduğu gibi verileri gerçek zamanlı olarak verimli bir şekilde işlemek için de kullanılabilirler.

Sıralar ve yığınlar için kullanılmaya ek olarak, deque'ler genişlik öncelikli arama algoritmalarını uygulamak için de kullanılabilir. Ayrıca, daha büyük bir dizideki öğelerin kayan bir penceresini korumak için de kullanışlıdırlar.

Bir Deque Nasıl Oluşturulur ve Başlatılır

Collections modülündeki yerleşik bir işlevi kullanarak bir deque oluşturabilirsiniz. Bu veri yapısını nasıl oluşturup doldurabileceğinize yakından bakalım.

deque() İşlevini Kullanma

Python'da bir deque oluşturmak için, collections modülündeki yerleşik deque() işlevini kullanabilirsiniz. Bu işlev, çift uçlu bir sıra uygulamak için kullanabileceğiniz yeni bir boş deque nesnesi döndürür.

İşte boş bir deque nesnesinin nasıl oluşturulacağına dair bir örnek:

from collections import deque 

my_deque = deque() 

Ayrıca deque() işlevine yinelenebilir bir (liste, tuple, vb.) geçirerek ilk öğelerle bir deque oluşturabilirsiniz . Deque, yinelemedeki öğelerle soldan sağa başlatılacaktır.

İşte bir örnek:

from collections import deque

my_list = [1, 2, 3, 4, 5] 
my_deque = deque(my_list)

Bir Deque'yi Öğelerle Başlatma

Ayrıca, çeşitli yöntemler kullanarak öğelerle boş bir deque başlatabilirsiniz. Bunu yapmanın bir yolu , deque'ye sırasıyla sağ ve sol taraftan öğeler eklemek için append() ve appendleft() yöntemlerini kullanmaktır .

İşte bir örnek:

from collections import deque

#Initialize the empty deque
my_deque = deque()
print(my_deque)

#Add Values to the deque
my_deque.append(1) 
my_deque.append(2) 
my_deque.appendleft(3) 

print(my_deque)

Bu kodu çalıştırdıktan sonra, deque [3, 1, 2] öğelerini içerecektir .

Python'da Deque – Örneklerle Eğitim

Bir deque'yi öğelerle başlatmanın başka bir yolu, bir öğe listesini deque() işlevine iletmektir .

İşte bir örnek:

from collections import deque

my_deque = deque([1, 2, 3]) 

Bu kodu çalıştırmak, [1, 2, 3] öğelerini içeren bir deque nesnesi yaratacaktır .

Genel olarak, Python'da bir deque oluşturmak ve başlatmak basittir ve yerleşik deque() işlevi kullanılarak yapılabilir. Bunu ayrıca , append() ve appendleft() yöntemlerini kullanarak boş bir deque'ye öğeler ekleyerek de yapabilirsiniz .

Yaygın Deque İşlemleri Nasıl Gerçekleştirilir?

Python'da deque nesneleri üzerinde gerçekleştirebileceğiniz birçok işlem vardır. Daha popüler olanlardan bazılarına göz atalım.

Bir Deque'ye Eleman Ekleme

append() ve appendleft() yöntemlerini kullanarak bir Python deque'ye öğeler ekleyebilirsiniz . append () yöntemi, deque'nin sağ ucuna bir öğe eklerken, appendleft() yöntemi deque'nin sol ucuna bir öğe ekler.

İşte bir örnek:

import collections 

# Create an empty deque 
my_deque = collections.deque() 

# Add elements to the deque 
my_deque.append(1) 
my_deque.appendleft(2) 
my_deque.append(3) 

print(my_deque) 

# Output: 
deque([2, 1, 3])

Bir Deque'ye Birden Fazla Veri Elemanı Ekleme

Bir deque'ye veri öğelerini tek tek eklemek istemiyorsanız, extension () veya extensionleft() işlevleriyle işlemi hızlandırabilirsiniz. Bu işlevler bir yinelemeyi alır ve yinelemenin içeriğini sırasıyla deque'nin sonuna veya sol ucuna ekler.

İşte bir örnek:

from collections import deque

my_list = [1, 2, 3, 4, 5] 
my_deque = deque(my_list)

#Creating a tuple and list
cont = (11, 12, 13, 14)
full = [10,20,30]

#Extending the deque from the right
my_deque.extend(cont)
print(my_deque)

#Extending the deque from the left
my_deque.extendleft(full)
print(my_deque)

Yukarıdaki kodda, extension() işlevi, devam dizisindeki çoklu değerleri deque'nin sonuna ekler. Ardından, extensionleft() işlevi, tam listedeki çoklu veri öğelerini deque'nin sol ucuna ekler.

Python'da Deque – Örneklerle Eğitim

Bir Deque'den Elemanları Çıkarma

pop() ve popleft() yöntemlerini kullanarak bir Python deque'den öğeleri kaldırabilirsiniz . pop () yöntemi, deque'nin en sağdaki öğesini kaldırır ve döndürürken popleft() yöntemi, deque'nin en soldaki öğesini kaldırır ve döndürür.

İşte bir örnek:

import collections 

#Create a deque with some elements 
my_deque = collections.deque([1, 2, 3, 4, 5]) 

#Remove elements from the deque 
my_deque.pop() 
my_deque.popleft() 

print(my_deque) 

# Output: deque([2, 3, 4])

Ayrıca remove() işlevini kullanarak bir deque'den belirli bir değeri kaldırabilirsiniz . İşlev, belirtilen değerin ilk geçtiği yeri deque'den kaldırır.

İşte bir örnek:

import collections 

#Create a deque with some elements 
my_deque = collections.deque([1, 2, 1, 4, 5]) 

#Remove elements from the deque 
my_deque.remove(1)

print(my_deque) 

# Output: deque([2, 1, 4, 5])

Öğe bulunmazsa, Python bir ValueError döndürür .

Bir Deque'den Tüm Unsurları Çıkarma

Bir Deque'den tüm öğeleri kaldırmak ve onu boş duruma döndürmek için clear() işlevini kullanabiliriz . İşte nasıl çalıştığı:

from collections import deque 

#Create a deque with some elements 
my_deque = deque([1, 2, 1, 4, 5]) 

#Remove all elements from the deque 
my_deque.clear()

print(my_deque) 

# Output: 
deque([])

Accessing Elements of a Deque

You can access elements of a Python deque using the indexing operator []. You can also use a negative value in the indexing operator to access the deque elements from the right.

The indexing starts from 0 for the leftmost element and -1 for the rightmost element. Here’s an example:

import collections 

# Create a deque with some elements 
my_deque = collections.deque([1, 2, 3, 4, 5]) 

# Access elements of the deque 
print(my_deque[0]) 
# Output: 1 

print(my_deque[-1]) 
# Output: 5 

Modifying Elements of a Deque

You can modify elements of a Python deque using the indexing operator “[]” and the assignment operator “=“. Here’s an example:

from collections import deque

# Create a deque with some elements 
my_deque = deque([1, 2, 3, 4, 5]) 
print(my_deque)

# Modify elements of the deque 
my_deque[0] = 10 
my_deque[-1] = 50 

print(my_deque) 

In the above code, the indexing operator changes the first and last elements of the deque to 10 and 50 respectively.

Python'da Deque – Örneklerle Eğitim

These are the basic operations you can perform on a deque object in Python. With these operations, you can efficiently implement various data structures such as queues, stacks, and more.

How to Work with a Deque as a Queue

You can use a deque in Python to implement a queue data structure. A queue is an abstract data type that operates on a first in first out (FIFO) basis.

What this means is that you can append new items from one end of the queue and push out old items from the other end.

A good way to explain this is a line at a store. Typically, the first person to arrive will be at the head of the line and will be attended to first.

New arrivals will have to head to the back of the line and wait their turn. So, the first in will be the first answered, while the last in will be the last attended to.

Here’s how you can use a deque to implement queues.

Using append() and popleft() Methods

Sıra olarak bir deque kullanmak için, deque'nin sağ ucuna öğeler eklemek üzere append() yöntemini kullanabilirsiniz . Ek olarak, deque'nin sol ucundaki öğeleri kaldırmak için popleft() yöntemini kullanabilirsiniz .

Bu, Python'da bir kuyruğu uygulamanın çok etkili bir yoludur. İşte bir örnek:

from collections import deque 

queue = deque() 
queue.append(1) 
queue.append(2) 
queue.append(3) 

print(queue) 
# Output: deque([1, 2, 3]) 

x = queue.popleft() 
print(x) 
# Output: 1 

print(queue) 
# Output: deque([2, 3]) 

Gördüğünüz gibi, append() yöntemi deque'nin sağ ucuna öğeler ekler ve popleft() yöntemi deque'nin sol ucuna öğeler ekler.

Kuyruk uygulamasında tam olarak ihtiyacımız olan şey budur.

Bir Deque Queue'nin Boş Olup Olmadığını Kontrol Etme

Bir deque'nin boş olup olmadığını kontrol etmek için not operatörünü kullanabilirsiniz . İşte bir örnek:

from collections import deque 

queue = deque() 
if not queue: 
   print("Queue is empty") 
else: 
   print("Queue is not empty") 

Bu, deque boş olduğu için " Queue is empty " çıktısını verecektir . Deque'ye öğeler eklerseniz, artık boş olmayacaktır.

Sonuç olarak, Python'da bir kuyruk olarak bir deque kullanmak çok verimli ve uygulaması kolaydır.

Yığın Olarak Deque ile Çalışmak

Tıpkı kuyruklar gibi, yığınlar da verileri organize ederken kullanabileceğiniz başka bir soyut veri türleri örneğidir. Kuyrukların aksine, yığınlar son giren ilk çıkar (LIFO) tarzında çalışır.

Bu, deque'ye giren son öğenin, çıkan ilk öğe olacağı anlamına gelir. Temel veri yapısını kullanarak bunu nasıl uygulayabileceğiniz aşağıda açıklanmıştır.

append() ve pop() Yöntemlerini Kullanma

Deque'yi bir yığın olarak kullanırken, append() yöntemini kullanarak yığının en üstüne öğeler ekleyebilirsiniz . Bu yöntem, öğeyi deque'nin sağ ucuna ekler.

Benzer şekilde, pop() yöntemini kullanarak yığının tepesindeki öğeleri kaldırabilirsiniz . Bu yöntem, deque'nin en sağdaki öğesini kaldırır ve döndürür.

Örneğin, " my_stack " adında bir deque'niz olduğunu ve yığının tepesine bir öğe eklemek istediğinizi varsayalım . Aşağıdaki kodu kullanabilirsiniz:

 my_stack.append(5) 

Bu, öğe 5'i yığının üstüne ekleyecektir.

En üstteki öğeyi yığından çıkarmak istiyorsanız, pop() yöntemini kullanabilirsiniz: `

bal = my_stack.pop() 

print(bal)
# Output: 5

Bu, bu durumda 5 olan deque'nin en sağdaki öğesini kaldıracak ve geri getirecektir.

Boş Deque Nesnesi Kontrolü

Bir deque yığınının boş olup olmadığını “ not ” boole operatörünü kullanarak kontrol edebilirsiniz . Deque boşsa, " not my_deque " True döndürür . Aksi takdirde, False döndürür .

Örneğin, " my_deque " adlı bir deque yığınınız olduğunu ve boş olup olmadığını kontrol etmek istediğinizi varsayalım . Aşağıdaki kodu kullanabilirsiniz:

if not my_deque: 
   print("The deque is empty") 

else: 
   print("The deque is not empty") 

Bu, deque boşsa " The deque is empty " yazacaktır . Boş değilse, çıktı " Deque is not empty " olacaktır.

Deque ile bir yığın olarak çalışırken, yığının boş olup olmadığını takip etmek önemlidir. Boş bir yığından bir öğe çıkarmaya çalışırsanız, bir IndexError alırsınız .

Kısıtlanmış Deque nedir?

Kısıtlı bir deque, deque'nin her iki ucundaki veri ekleme ve pop işlemlerine bazı kısıtlamalar getirilen çift uçlu bir sıradır. İki ana kısıtlı deque türü vardır; Girdi kısıtlamalı deques ve çıkış kısıtlı deques

Onlara bakalım:

Girdi Kısıtlı Deque

Girdi kısıtlamalı bir deque, deque'nin her iki ucundaki veri öğelerini açmanıza veya silmenize olanak tanır. Ancak veri öğelerini yalnızca deque'nin bir ucundan ekleyebilirsiniz.

Bu, bellek kısıtlamaları olan uygulamalarda çok kullanışlıdır. Deque'nin herhangi bir ucundaki verileri atma özelliğini korurken, veri öğelerini kronolojik sırada eklemek için kullanabilirsiniz.

Çıkış Kısıtlı Deque

Çıktı kısıtlamalı bir deque, deque'nin her iki ucundan da veri eklemenize olanak tanır. Ancak, ön uç adı verilen deque'nin yalnızca bir ucundaki öğeleri silebilirsiniz.

Çıktı kısıtlamalı bir deque, bir FIFO veri yapısı uygulamanız gereken ancak yine de her iki uçtan da veri ekleme işlevselliğini istediğiniz durumlarda çok kullanışlıdır.

Hadi Bunu Bitirelim

Şimdiye kadar, Python'daki deque modülünü ve verimli kuyruklar ve yığınlar uygulamak için nasıl kullanılabileceğini iyi anlamış olmalısınız.

Deques, geleneksel listelere göre birçok avantaj sunan çok yönlü bir veri yapısıdır. Bu avantajlar, bellek açısından verimli ekleme ve çıkarma işlemleri söz konusu olduğunda belirgindir.

Bir yığın veya çift uçlu sıra uygulamanız gerektiğinde de harika bir seçimdir. Deques kullanmanın temel faydalarından bazıları şunlardır:

  • Deque'nin her iki ucundan verimli O(1) ekleme ve çıkarma işlemleri

  • Deque'nin ilk ve son öğelerine hızlı O(1) erişimi

  • İş parçacığı güvenli, atomik işlemler için yerleşik destek

  • Deque'ye eleman eklemek, çıkarmak ve döndürmek için esnek yöntemler

Genel olarak deque modülü, daha verimli ve bakımı kolay Python kodu yazmanıza yardımcı olabilecek güçlü bir araçtır. İster küçük bir betik ister büyük ölçekli bir proje üzerinde çalışıyor olun, deque'ler kesinlikle geleneksel listelere veya diğer veri yapılarına bir alternatif olarak dikkate alınmaya değer!

Python hakkında daha fazlasını öğrenmeye hazır olun, aşağıdaki çalma listemize göz atın

Leave a Comment

Excel Hücrelerini Metne Sığdırma: 4 Kolay Çözüm

Excel Hücrelerini Metne Sığdırma: 4 Kolay Çözüm

Excel hücrelerini metne sığdırmak için güncel bilgileri ve 4 kolay çözümü keşfedin.

Bir Excel Dosyasının Boyutu Nasıl Küçültülür – 6 Etkili Yöntem

Bir Excel Dosyasının Boyutu Nasıl Küçültülür – 6 Etkili Yöntem

Bir Excel Dosyasının Boyutunu Küçültmek için 6 Etkili Yöntem. Hızlı ve kolay yöntemler ile verilerinizi kaybetmeden yer açın.

Pythonda Self Nedir: Gerçek Dünyadan Örnekler

Pythonda Self Nedir: Gerçek Dünyadan Örnekler

Python'da Self Nedir: Gerçek Dünyadan Örnekler

Rde Bir RDS Dosyası Nasıl Kaydedilir ve Yüklenir

Rde Bir RDS Dosyası Nasıl Kaydedilir ve Yüklenir

R'de bir .rds dosyasındaki nesneleri nasıl kaydedeceğinizi ve yükleyeceğinizi öğreneceksiniz. Bu blog aynı zamanda R'den LuckyTemplates'a nesnelerin nasıl içe aktarılacağını da ele alacaktır.

İlk N İş Günü Tekrar Ziyaret Edildi – Bir DAX Kodlama Dili Çözümü

İlk N İş Günü Tekrar Ziyaret Edildi – Bir DAX Kodlama Dili Çözümü

Bu DAX kodlama dili eğitiminde, GENERATE işlevinin nasıl kullanılacağını ve bir ölçü başlığının dinamik olarak nasıl değiştirileceğini öğrenin.

LuckyTemplatesda Çok İş Parçacıklı Dinamik Görsel Tekniği Kullanarak Öngörüleri Sergileyin

LuckyTemplatesda Çok İş Parçacıklı Dinamik Görsel Tekniği Kullanarak Öngörüleri Sergileyin

Bu eğitici, raporlarınızdaki dinamik veri görselleştirmelerinden içgörüler oluşturmak için Çok Kanallı Dinamik Görseller tekniğinin nasıl kullanılacağını kapsayacaktır.

LuckyTemplatesda İçeriği Filtrelemeye Giriş

LuckyTemplatesda İçeriği Filtrelemeye Giriş

Bu yazıda, filtre bağlamından geçeceğim. Filtre bağlamı, herhangi bir LuckyTemplates kullanıcısının başlangıçta öğrenmesi gereken en önemli konulardan biridir.

LuckyTemplates Çevrimiçi Hizmetindeki Uygulamaları Kullanmak İçin En İyi İpuçları

LuckyTemplates Çevrimiçi Hizmetindeki Uygulamaları Kullanmak İçin En İyi İpuçları

LuckyTemplates Apps çevrimiçi hizmetinin çeşitli kaynaklardan oluşturulan farklı raporların ve içgörülerin yönetilmesine nasıl yardımcı olabileceğini göstermek istiyorum.

Fazla Mesai Kâr Marjı Değişikliklerini Analiz Edin - LuckyTemplates ve DAX ile Analitik

Fazla Mesai Kâr Marjı Değişikliklerini Analiz Edin - LuckyTemplates ve DAX ile Analitik

LuckyTemplates'da ölçü dallandırma ve DAX formüllerini birleştirme gibi teknikleri kullanarak kâr marjı değişikliklerinizi nasıl hesaplayacağınızı öğrenin.

DAX Studioda Veri Önbellekleri İçin Materyalleştirme Fikirleri

DAX Studioda Veri Önbellekleri İçin Materyalleştirme Fikirleri

Bu öğreticide, veri önbelleklerini gerçekleştirme fikirleri ve bunların DAX'ın sonuç sağlama performansını nasıl etkilediği tartışılacaktır.