Rodrick Brown wrote:
Was reading the official python document and I noticed they mentioned queues being more efficient for adding/removing elements vs list so I wrote a quick test the validate this claim and I wasn't very impressed by the results it seems queues are just slightly faster so my question to the list, is deque used much in python over general lists?

  1 #!/usr/bin/python
2 3 import time
  4 from collections import deque
5 6 nameList = ["Eric","John","Michael"]
  7 #queue = deque(["Eric","John","Michael"])
  8 queue = deque(nameList)
9 10 def buildItems_q(q,n,mode):
 11     start = 0
 12     end = 0
13 14 if mode == 'q':
 15         start = time.time()
 16         for r in xrange(n):
 17             queue.append("Terry_%s" % r)
 18         end = time.time()
19 20 while q.pop() is not None:
 21             try:
 22                 q.pop()
 23             except IndexError:
 24                 pass
 25             break
 26     else:
 27         start = time.time()
 28         for r in xrange(n):
 29             q.append("Terry_%s" % r)
 30         end = time.time()
31 32 while q.pop() is not None:
 33             try:
 34                 q.pop()
 35             except IndexError:
 36                 pass
 37             break
38 39 return (end - start) 40 41 if __name__ == "__main__":
 42     size = 10000000
 43     mode = 'list'
44     runtime = buildItems_q(queue,size,mode)
 45     print "Total run time: %f (%s)" % (runtime,mode)
46 47 mode = 'Queue'
 48     runtime = buildItems_q(queue,size,mode)
 49     print "Total run time: %f (%s)" % (runtime,mode)


rbr...@laptop:~/code/python$ python queue.py Total run time: 5.169290 (list)
Total run time: 5.112517 (Queue)

You're passing either 'list' or 'Queue' into buildItems_q(), but testing
for 'q'.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to