mirror of https://github.com/python/cpython
add /F's PriorityQueue example
This commit is contained in:
parent
ffd3a4217a
commit
09d9f86c77
|
@ -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}
|
||||
|
|
Loading…
Reference in New Issue