https://docs.python.org/3/library/collections.html
This module implements specialized container datatypes providing alternatives to Python’s general purpose built-in containers, 'dict', 'list', 'set', and 'tuple'.
import collections
# collections.deque([iterable[, maxlen]])
# Methods: copy(), clear(), count(), index(), insert()
# remove(), reverse(), rotate(n=1),
# extend(iterable), extendleft(iterable),
# append(), appendleft(),
# pop(), popleft().
d = collections.deque('ghi') # make a new deque with three items
print(d) # deque(['g', 'h', 'i'])
d.append('j') # add a new entry to the right side
d.appendleft('f') # add a new entry to the left side
print(d) # deque(['f', 'g', 'h', 'i', 'j'])
item1 = d.pop() # 'j', return and remove the rightmost item
item2 = d.popleft() # 'f', return and remove the leftmost item
list(d) # ['g', 'h', 'i'], list the contents of the deque
assert d[0] == 'g' and d[-1] == 'i' # fast only for the ends
'h' in d # True
for item in d: # iteration
print(item)