Queues vs List
Rodrick Brown
rodrick.brown at gmail.com
Fri Dec 25 17:21:25 EST 2009
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)
rbrown at laptop:~/code/python$ python queue.py
Total run time: 5.169290 (list)
Total run time: 5.112517 (Queue)
--
[ Rodrick R. Brown ]
http://www.rodrickbrown.com http://www.linkedin.com/in/rodrickbrown
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20091225/e1bdc56b/attachment-0001.html>
More information about the Python-list
mailing list