[Tutor] Filling orders FIFO

Steven D'Aprano steve at pearwood.info
Sat Jul 16 06:49:01 CEST 2011


Charles John wrote:
> Hi I am new to python and was wondering what the best way to create an
> order(bid and offer) queue, then match a bid and offer so that if
> bid==offer, creates a filled order FIFO in python cgi using mysql? Does
> anybody have any ideas? It would be greatly appreciated.

The simplest way to use a queue is with a list:

queue = []

You push items onto the queue with queue.append(item) and pop them off 
with queue.pop(0).

However, popping items may be slow if the queue grows very large (tens 
of thousands of items). It might be better to use a deque (double ended 
queue) instead of a list:

from collections import deque
queue = deque()

To push items onto the right hand side of the queue, then pop them off 
the left hand side:

queue.append(item)
queue.popleft()


As for the rest of your question, I don't understand what you mean by an 
order(bid and offer) queue. Perhaps you could give an example of what 
you mean.


-- 
Steven


More information about the Tutor mailing list