diff options
author | Skip Montanaro <skip@pobox.com> | 2002-06-26 05:07:28 (GMT) |
---|---|---|
committer | Skip Montanaro <skip@pobox.com> | 2002-06-26 05:07:28 (GMT) |
commit | 09d9f86c7767bbd394591bc3b1c7d5025fc1f91b (patch) | |
tree | 2600b494f04e9f880347b5911573a173d10478a2 /Doc/lib | |
parent | ffd3a4217a557bad4984621c22f5ae312d708169 (diff) | |
download | cpython-09d9f86c7767bbd394591bc3b1c7d5025fc1f91b.zip cpython-09d9f86c7767bbd394591bc3b1c7d5025fc1f91b.tar.gz cpython-09d9f86c7767bbd394591bc3b1c7d5025fc1f91b.tar.bz2 |
add /F's PriorityQueue example
Diffstat (limited to 'Doc/lib')
-rw-r--r-- | Doc/lib/libbisect.tex | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/Doc/lib/libbisect.tex b/Doc/lib/libbisect.tex index 8c108a6..3241891 100644 --- a/Doc/lib/libbisect.tex +++ b/Doc/lib/libbisect.tex @@ -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} |