> For that purpose I have used the good deque that you can find in > collections in the standard library. It's very good for queues, and > it's a bit faster than regular lists for stacks too.
you mean *much* faster (since a list is a reference array so pop(0) is O(n) operation) never use a list as queue if len(queue) > 10000 === benchmark $ time ./deque_queue.py 34359607296 real 0m0.286s user 0m0.264s sys 0m0.016s $ time ./list_queue.py 34359607296 real 1m20.915s user 1m18.649s sys 0m0.396s === the sources --- deque_queue.py: #!/usr/bin/python2.5 from collections import deque def f(n): sum = 0 queue = deque() for i in range(n): queue.append(i) while queue: sum += queue.popleft() print sum if __name__=='__main__': f(1<<18) --- list_queue.py: #!/usr/bin/python2.5 def f(n): sum = 0 queue = list() for i in range(n): queue.append(i) while queue: sum += queue.pop(0) print sum if __name__=='__main__': f(1<<18) -- http://mail.python.org/mailman/listinfo/python-list