diff options
author | Raymond Hettinger <python@rcn.com> | 2004-06-10 05:03:17 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2004-06-10 05:03:17 (GMT) |
commit | 33ecffb65ae43ece95e4d828f95819395187d579 (patch) | |
tree | 499adce5b4fc964973a8e72baf2c6214bcef89e3 /Doc | |
parent | 7d019664d7fcd3692eafef668fbc2e17126dee14 (diff) | |
download | cpython-33ecffb65ae43ece95e4d828f95819395187d579.zip cpython-33ecffb65ae43ece95e4d828f95819395187d579.tar.gz cpython-33ecffb65ae43ece95e4d828f95819395187d579.tar.bz2 |
SF patch #969791: Add nlargest() and nsmallest() to heapq.
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/lib/libheapq.tex | 24 | ||||
-rw-r--r-- | Doc/whatsnew/whatsnew24.tex | 5 |
2 files changed, 28 insertions, 1 deletions
diff --git a/Doc/lib/libheapq.tex b/Doc/lib/libheapq.tex index 38f9b1a..4585058 100644 --- a/Doc/lib/libheapq.tex +++ b/Doc/lib/libheapq.tex @@ -83,6 +83,30 @@ True >>> \end{verbatim} +The module also offers two general purpose functions based on heaps. + +\begin{funcdesc}{nlargest}{iterable, n} +Return a list with the \var{n} largest elements from the dataset defined +by \var{iterable}. Equivalent to: \code{sorted(iterable, reverse=True)[:n]} +\versionadded{2.4} +\end{funcdesc} + +\begin{funcdesc}{nsmallest}{iterable, n} +Return a list with the \var{n} smallest elements from the dataset defined +by \var{iterable}. Equivalent to: \code{sorted(iterable)[:n]} +\versionadded{2.4} +\end{funcdesc} + +Though the above functions appear symmetrical, they each have different +speed and space requirements. In particular, \function{nsmallest()} +operates on a full copy of the dataset. In contrast, \function{nlargest()} +only requires storage space for \var{n} elements. + +Both functions perform best for smaller values of \var{n}. For larger +values, it is more efficient to use the \function{sorted()} function. Also, +when \code{n==1}, it is more efficient to use the builtin \function{min()} +and \function{max()} functions. + \subsection{Theory} diff --git a/Doc/whatsnew/whatsnew24.tex b/Doc/whatsnew/whatsnew24.tex index 3f4151f..4a67916 100644 --- a/Doc/whatsnew/whatsnew24.tex +++ b/Doc/whatsnew/whatsnew24.tex @@ -449,7 +449,10 @@ improved performance: \module{Queue}, \module{mutex}, \module{shlex} \item The \module{heapq} module has been converted to C. The resulting tenfold improvement in speed makes the module suitable for handling - high volumes of data. + high volumes of data. In addition, the module has two new functions + \function{nlargest()} and \function{nsmallest()} that use heaps to + find the largest or smallest n values in a dataset without the + expense of a full sort. \item The \module{imaplib} module now supports IMAP's THREAD command. (Contributed by Yves Dionne.) |