efficient idiomatic queue?
Raymond Hettinger
othello at javanet.com
Thu Jan 17 08:46:36 EST 2002
"Delaney, Timothy" <tdelaney at avaya.com> wrote in message
news:mailman.1011232764.16285.python-list at python.org...
>
> 10000 <type 'list'> 0.329070
> 10000 <type 'array'> 0.234557
> 10000 DictIntFifo 0.123809
> 10000 DictLongFifo 0.185284
> 10000 ListPrependFifo 0.329698
> 10000 ListAppendFifo 0.398269
>
> 100000 <type 'list'> 76.195043
> 100000 <type 'array'> 56.828019
> 100000 DictIntFifo 1.269020
> 100000 DictLongFifo 1.961017
> 100000 ListPrependFifo 60.693928
> 100000 ListAppendFifo 77.094517
>
> So once you get to decently large quantities in the queue, the dict
versions
> make real sense over a basic list (Win2000).
>
> Tim Delaney
Before drawing a conclusion on this one, please add Sébastien Keim's
approach
to the mix:
class NestedListFifo:
def __init__(self):
self.first=[]
def append(self,data):
node = [data,[]]
if self.first == []:
self.first= node
else:
self.last[1] = node
self.last = node
def pop(self, n=-1):
node = self.first
self.first=node[1]
return node[0]
Raymond Hettinger
More information about the Python-list
mailing list