Improve the documented advice on how to best use heapq.heapreplace().

This commit is contained in:
Raymond Hettinger 2004-06-20 09:07:53 +00:00
parent 1761a7cc8b
commit 28224f897a
3 changed files with 10 additions and 3 deletions

View File

@ -59,7 +59,11 @@ If the heap is empty, \exception{IndexError} is raised.
This is more efficient than \function{heappop()} followed This is more efficient than \function{heappop()} followed
by \function{heappush()}, and can be more appropriate when using by \function{heappush()}, and can be more appropriate when using
a fixed-size heap. Note that the value returned may be larger a fixed-size heap. Note that the value returned may be larger
than \var{item}! That constrains reasonable uses of this routine. than \var{item}! That constrains reasonable uses of this routine
unless written as part of a larger expression:
\begin{verbatim}
result = item <= heap[0] and item or heapreplace(heap, item)
\end{verbatim}
\end{funcdesc} \end{funcdesc}
Example of use: Example of use:

View File

@ -154,7 +154,9 @@ def heapreplace(heap, item):
This is more efficient than heappop() followed by heappush(), and can be This is more efficient than heappop() followed by heappush(), and can be
more appropriate when using a fixed-size heap. Note that the value more appropriate when using a fixed-size heap. Note that the value
returned may be larger than item! That constrains reasonable uses of returned may be larger than item! That constrains reasonable uses of
this routine. this routine unless written as part of a larger expression:
result = item <= heap[0] and item or heapreplace(heap, item)
""" """
returnitem = heap[0] # raises appropriate IndexError if heap is empty returnitem = heap[0] # raises appropriate IndexError if heap is empty
heap[0] = item heap[0] = item

View File

@ -186,7 +186,8 @@ PyDoc_STRVAR(heapreplace_doc,
This is more efficient than heappop() followed by heappush(), and can be\n\ This is more efficient than heappop() followed by heappush(), and can be\n\
more appropriate when using a fixed-size heap. Note that the value\n\ more appropriate when using a fixed-size heap. Note that the value\n\
returned may be larger than item! That constrains reasonable uses of\n\ returned may be larger than item! That constrains reasonable uses of\n\
this routine.\n"); this routine unless written as part of a larger expression:\n\n\
result = item <= heap[0] and item or heapreplace(heap, item)\n");
static PyObject * static PyObject *
heapify(PyObject *self, PyObject *heap) heapify(PyObject *self, PyObject *heap)