0Pricing
Python Academy · Lektion

deque

Schnelle doppelseitige Warteschlangen verwenden

deque ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist eine deque?

Eine deque (ausgesprochen „Deck“) ist eine doppelseitige Warteschlange aus dem Modul collections. Sie unterstützt schnelles Anhängen und Entfernen an beiden Enden.

Importieren Sie sie mit from collections import deque.

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

Warum nicht einfach eine Liste?

Listen sind langsam, wenn Sie am Anfang Elemente einfügen oder entfernen, weil jedes Element verschoben werden muss. Eine deque führt Operationen am Anfang in konstanter Zeit aus und eignet sich daher ideal für Warteschlangen.

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

An beiden Enden anhängen

Verwenden Sie .append(), um rechts etwas hinzuzufügen, und .appendleft(), um links etwas hinzuzufügen.

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

An beiden Enden entfernen

.pop() entfernt das Element ganz rechts und gibt es zurück; .popleft() entfernt das Element ganz links. Beide Operationen sind schnell.

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

Eine einfache Warteschlange (FIFO)

Für das First-in-First-out-Verhalten hängen Sie rechts an und entfernen Sie mit popleft von links. Die Elemente verlassen die Warteschlange in der Reihenfolge ihres Eintreffens.

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

Begrenzte deque mit maxlen

Geben Sie ein maxlen an, um die Größe zu begrenzen. Wenn die deque voll ist, verwirft das Hinzufügen an einem Ende automatisch ein Element am anderen Ende – ideal, um den aktuellen Verlauf aufzubewahren.

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

Elemente rotieren

.rotate(n) verschiebt die Elemente um n Schritte nach rechts; ein negatives n rotiert nach links. Die Elemente werden dabei am anderen Ende wieder eingefügt.

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

Viele Elemente auf einmal hinzufügen

.extend() fügt rechts viele Elemente hinzu, und .extendleft() fügt sie links hinzu. Beachten Sie, dass extendleft die Reihenfolge der hinzugefügten Elemente umkehrt.

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

Indizierung und Länge

Eine deque unterstützt den Zugriff per Index wie eine Liste und funktioniert mit len(). Der Zugriff auf die Mitte ist langsamer als auf die Enden; bevorzugen Sie daher Operationen an den Enden.

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

Leeren und Umkehren

.reverse() kehrt die deque direkt um, und .clear() leert sie. Beide Methoden ändern die deque direkt.

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

Vorkommen zählen

Wie eine Liste verfügt auch eine deque über .count(), um zu zählen, wie oft ein Wert vorkommt.

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

Kurzer Test

Sie erstellen mit einer deque eine FIFO-Warteschlange. Welches Methodenpaar liefert die richtige First-in-First-out-Reihenfolge?

Zusammenfassung: deque

Sie haben gelernt, dass eine deque:

  • im Gegensatz zu einer Liste schnelles append/pop an beiden Enden unterstützt.
  • mit appendleft und popleft über Methoden für die linke Seite verfügt.
  • mit maxlen begrenzt werden kann, um nur die neuesten Elemente zu behalten.
  • für Warteschlangenoperationen rotate, extend, reverse und count bietet.
from collections import deque
q = deque(maxlen=2)
for x in ['a', 'b', 'c']:
    q.append(x)
print(q)

Häufig gestellte Fragen

Ist die Lektion „deque“ kostenlos?

Ja — der vollständige Text von „deque“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „deque“?

Schnelle doppelseitige Warteschlangen verwenden Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „deque“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Counter
  2. defaultdict
  3. deque
  4. namedtuple und OrderedDict
← Zurück zu Python Academy