add /F's PriorityQueue example

This commit is contained in:
Skip Montanaro 2002-06-26 05:07:28 +00:00
parent ffd3a4217a
commit 09d9f86c77
1 changed files with 19 additions and 1 deletions

View File

@ -61,7 +61,7 @@ The following functions are provided:
\end{funcdesc}
\subsection{Example}
\subsection{Examples}
\nodename{bisect-example}
The \function{bisect()} function is generally useful for categorizing
@ -81,3 +81,21 @@ breakpoints: 85 and up is an `A', 75..84 is a `B', etc.
>>> map(grade, [33, 99, 77, 44, 12, 88])
['E', 'A', 'B', 'D', 'F', 'A']
\end{verbatim}
The bisect module can be used with the Queue module to implement a priority
queue (example courtesy of Fredrik Lundh): \index{Priority Queue}
\begin{verbatim}
import Queue, bisect
class PriorityQueue(Queue.Queue):
def _put(self, item):
bisect.insort(self.queue, item)
# usage
queue = PriorityQueue(0)
queue.put((2, "second"))
queue.put((1, "first"))
queue.put((3, "third"))
priority, value = queue.get()
\end{verbatim}