Python Academy · Les

deque

Gebruik snelle dubbelzijdige wachtrijen

Les 3 van 413 stappen

deque is een gratis Python Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.

Wat is een deque?

Een deque (uitgesproken als 'deck') is een dubbelzijdige wachtrij uit de module collections. Je kunt er aan beide uiteinden snel elementen aan toevoegen en verwijderen.

Importeer deze met from collections import deque.

from collections import deque
d = deque([1, 2, 3])
print(d)

Waarom niet gewoon een lijst?

Bij lijsten zijn invoegen aan of verwijderen van de voorkant langzaam, omdat elk element moet verschuiven. Een deque voert bewerkingen aan de voorkant uit in constante tijd en is daardoor ideaal voor wachtrijen.

from collections import deque
d = deque(['b', 'c'])
d.appendleft('a')
print(d)

Toevoegen aan beide uiteinden

Gebruik .append() om aan de rechterkant toe te voegen en .appendleft() om aan de linkerkant toe te voegen.

from collections import deque
d = deque()
d.append(1)
d.append(2)
d.appendleft(0)
print(d)

Verwijderen aan beide uiteinden

.pop() verwijdert het meest rechtse element en geeft het terug; .popleft() verwijdert het meest linkse element. Beide zijn snel.

from collections import deque
d = deque([10, 20, 30])
print(d.pop())
print(d.popleft())
print(d)

Een eenvoudige wachtrij (FIFO)

Voor gedrag volgens first-in-first-out voeg je rechts toe en gebruik je popleft aan de linkerkant. Elementen verlaten de wachtrij in de volgorde waarin ze zijn aangekomen.

from collections import deque
queue = deque()
queue.append('first')
queue.append('second')
print(queue.popleft())
print(queue.popleft())

Begrensde deque met maxlen

Geef een maxlen op om de grootte te beperken. Wanneer de deque vol is, verwijdert toevoegen aan het ene uiteinde automatisch een element aan het andere uiteinde — ideaal om recente geschiedenis bij te houden.

from collections import deque
recent = deque(maxlen=3)
for n in [1, 2, 3, 4, 5]:
    recent.append(n)
print(recent)

Elementen roteren

.rotate(n) verschuift elementen n stappen naar rechts; een negatieve n roteert naar links. Elementen lopen door aan het andere uiteinde.

from collections import deque
d = deque([1, 2, 3, 4, 5])
d.rotate(2)
print(d)
d.rotate(-1)
print(d)

In één keer uitbreiden

.extend() voegt veel elementen aan de rechterkant toe en .extendleft() voegt ze aan de linkerkant toe. Let op: extendleft keert de volgorde van de toegevoegde elementen om.

from collections import deque
d = deque([3])
d.extend([4, 5])
d.extendleft([2, 1])
print(d)

Indexering en lengte

Een deque ondersteunt indexering zoals een list en werkt met len(). Toegang tot het midden is langzamer dan toegang tot de uiteinden, dus geef de voorkeur aan bewerkingen aan de uiteinden.

from collections import deque
d = deque(['a', 'b', 'c'])
print(d[0])
print(d[-1])
print(len(d))

Leegmaken en omkeren

.reverse() keert de deque ter plekke om en .clear() maakt hem leeg. Beide wijzigen de deque rechtstreeks.

from collections import deque
d = deque([1, 2, 3])
d.reverse()
print(d)
d.clear()
print(d)

Voorkomens tellen

Net als een list heeft een deque .count() om te tellen hoe vaak een waarde voorkomt.

from collections import deque
d = deque([1, 2, 2, 3, 2])
print(d.count(2))

Kennischeck

Je bouwt een FIFO-wachtrij met een deque. Welk paar methoden zorgt voor de juiste first-in-first-outvolgorde?

Samenvatting: deque

Je hebt geleerd dat een deque:

  • Snelle append/pop-bewerkingen aan beide uiteinden ondersteunt, in tegenstelling tot een list.
  • appendleft en popleft heeft voor de linkerkant.
  • Met maxlen kan worden begrensd om alleen recente elementen te bewaren.
  • rotate, extend, reverse en count biedt voor werk in de stijl van wachtrijen.
from collections import deque
q = deque(maxlen=2)
for x in ['a', 'b', 'c']:
    q.append(x)
print(q)
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
320

Veelgestelde vragen

Is de les “deque” gratis?

Ja — de volledige tekst van “deque” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.

Wat leer ik in “deque”?

Gebruik snelle dubbelzijdige wachtrijen Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Python Academy te beginnen?

Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “deque”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Python Academy?

Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Counter
  2. defaultdict
  3. deque
  4. namedtuple en OrderedDict
← Terug naar Python Academy