Skip to content

Instantly share code, notes, and snippets.

@tomislater
Created October 6, 2013 16:04
Show Gist options
  • Select an option

  • Save tomislater/6855746 to your computer and use it in GitHub Desktop.

Select an option

Save tomislater/6855746 to your computer and use it in GitHub Desktop.
>>> from collections import deque
>>> l = deque([])
>>> for x in xrange(15):
>>> l.appendleft(x)
>>> l.append(x)
>>> print l
deque([14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
>>> for x in xrange(30):
>>> l.popleft()
>>> print l
deque([])
>>> from timeit import timeit
>>> def stack_deque():
>>> l = deque([])
>>> for x in xrange(10000):
>>> l.appendleft(x)
>>> timeit(stack_deque, number=1000)
0.6624810695648193
>>> def stack_list():
>>> l = []
>>> for x in xrange(10000):
>>> l.insert(0, x)
>>> timeit(stack_list, number=1000)
23.359800100326538
>>> def stack_deque_two():
>>> l = deque([x for x in xrange(10000)])
>>> for x in xrange(10000):
>>> l.popleft()
>>> timeit(stack_deque_two, number=1000)
0.9383018016815186
>>> def stack_list_two():
>>> l = [x for x in xrange(10000)]
>>> for x in xrange(10000):
>>> l.pop(0)
>>> timeit(stack_list_two, number=1000)
15.480417013168335
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment