efficient idiomatic queue?

Alex Martelli aleax at aleax.it
Wed Jan 16 09:11:34 CET 2002


"David Eppstein" <eppstein at ics.uci.edu> wrote in message
news:eppstein-3B0408.21320615012002 at news.service.uci.edu...
> In article <a22rhr$bn1$1 at panix3.panix.com>, aahz at panix.com (Aahz Maruch)
> wrote:
>
> > Just to be a jerk, why not use a dict with a couple of index variables?
>
> Maybe you could unpack that a little? dicts are useful but AFAIK they
> aren't the same thing as queues, index variables or no.

Well, they obviously CAN be used to IMPLEMENT queues -- performance
characteristics apart:

class DictFifo:
    def __init__(self):
        self.data = {}
        self.nextin = 0
        self.nextout = 0
    def append(self, value):
        self.data[self.nextin] = value
        self.nextin += 1
    def pop(self):
        value = self.data[self.nextout]
        del self.data[self.nextout]
        self.nextout += 1

No "being the same" asserted or implied, of course -- the dict and
the two indices are just tools to _implement_ a fifo queue, here.


Alex






More information about the Python-list mailing list