Deque - двухсторонние очереди

Возвращает объект, поддерживающий добавление слева и справа. а так-же пролистывание. Потокобезопасное добавление/удаление с обоих концов со сложностью O(1)

import collections

d = collections.deque('abcdefg')

# to the right
d.append('h')

# to the left
d2.appendleft('h')

# right rotation
d.rotate(2)

# left rotation
d.rotate(-2)

При ротации объекты переносятся с одного конца на другой.

Есть возможность ограничить длину очереди, задав maxlen

d = collections.deque(maxlen=3)
d.append('a')
d.append('b')
d.append('c')
d.append('c')
print(d)
>>> deque(['b', 'c', 'd'], maxlen=3)

Доступные методы в документации

Примеры реализации

[python-standart-library]