Double Linked List

Statt eines großen Speicherebereichs in dem sich die Pointer auf die Elemente/Objekte hintereinander befinden (so wie das List macht) wird eine Kette benutzt und die Speicherbereiche der Pointer können irgendwo im Speicher liegen.
Neben dem Pointer auf das eigentliche Objekt wird ein Pointer auf das Element vor dem jeweiligen in der „Liste“ und einer auf das nächste Element in der „Liste“ gespeichert.
Dadurch kann von einem Eintrag aus problemlos zum vorhergehenden oder nachfolgenden gesprungen werden.

Praktisch stimmt das obige wohl nur in der Theorie, in der Praxis (CPython) reserviert Python Speicherblöcke und speichert darin immer einen Satz von Pointern. Ist der Block voll alloziert es den nächsten Speicherblock und verweist zwischen diesen Speicherblöcken per Double Links aufeinander, aber nicht innerhalb des Blocks.
Das heißt in CPython ist deque eigentlich ein Hybrid aus Liste und double linked list.

Vorteile (gegenüber List):

Nachteile (gegenüber List):