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