2014-04-18 00:06:20 +00:00
|
|
|
class deque:
|
|
|
|
def __init__(self, iterable=None):
|
|
|
|
if iterable is None:
|
|
|
|
self.q = []
|
|
|
|
else:
|
|
|
|
self.q = list(iterable)
|
|
|
|
|
|
|
|
def popleft(self):
|
|
|
|
return self.q.pop(0)
|
|
|
|
|
|
|
|
def popright(self):
|
|
|
|
return self.q.pop()
|
|
|
|
|
|
|
|
def pop(self):
|
|
|
|
return self.q.pop()
|
|
|
|
|
|
|
|
def append(self, a):
|
|
|
|
self.q.append(a)
|
|
|
|
|
|
|
|
def appendleft(self, a):
|
2014-12-15 00:29:06 +00:00
|
|
|
self.q.insert(0, a)
|
2014-12-14 16:54:28 +00:00
|
|
|
|
2015-12-02 22:34:55 +00:00
|
|
|
def extend(self, a):
|
|
|
|
self.q.extend(a)
|
|
|
|
|
2014-12-14 16:54:28 +00:00
|
|
|
def __len__(self):
|
|
|
|
return len(self.q)
|
2014-12-14 17:17:04 +00:00
|
|
|
|
|
|
|
def __bool__(self):
|
2014-12-14 18:06:10 +00:00
|
|
|
return bool(self.q)
|
2014-12-15 00:29:06 +00:00
|
|
|
|
|
|
|
def __iter__(self):
|
|
|
|
yield from self.q
|
|
|
|
|
|
|
|
def __str__(self):
|
2021-05-27 05:50:04 +00:00
|
|
|
return "deque({})".format(self.q)
|