]> granicus.if.org Git - python/commitdiff
Reverse argument order for nsmallest() and nlargest().
authorRaymond Hettinger <python@rcn.com>
Tue, 15 Jun 2004 23:53:35 +0000 (23:53 +0000)
committerRaymond Hettinger <python@rcn.com>
Tue, 15 Jun 2004 23:53:35 +0000 (23:53 +0000)
Reads better when the iterable is a generator expression.

Doc/lib/libheapq.tex
Lib/difflib.py
Lib/test/test_heapq.py
Modules/_heapqmodule.c

index 5a140ab81c8a545cecbdff4903156e51950c8a9f..ffcafcd2a5f19f550bab6c89fe9ac19ddc49e6e7 100644 (file)
@@ -85,13 +85,13 @@ True
 
 The module also offers two general purpose functions based on heaps.
 
-\begin{funcdesc}{nlargest}{iterable, n}
+\begin{funcdesc}{nlargest}{n, iterable}
 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}
+\begin{funcdesc}{nsmallest}{n, iterable}
 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}              
index 85a1c9cb70abefd16075d89d3d6d722b33126c8b..529c78638c6b2e54f313f6265a5f91d0b3f6faa1 100644 (file)
@@ -705,7 +705,7 @@ def get_close_matches(word, possibilities, n=3, cutoff=0.6):
             result.append((s.ratio(), x))
 
     # Move the best scorers to head of list
-    result = heapq.nlargest(result, n)
+    result = heapq.nlargest(n, result)
     # Strip scores for the best n matches
     return [x for score, x in result]
 
index b6fec9f47a8f4bdf045f0a7d8509eb0dddaba57e..4e535e9ddd6a649aa84469facffccb39c057dd41 100644 (file)
@@ -92,13 +92,13 @@ class TestHeap(unittest.TestCase):
 
     def test_nsmallest(self):
         data = [random.randrange(2000) for i in range(1000)]
-        for i in (0, 1, 2, 10, 100, 400, 999, 1000, 1100):
-            self.assertEqual(nsmallest(data, i), sorted(data)[:i])
+        for n in (0, 1, 2, 10, 100, 400, 999, 1000, 1100):
+            self.assertEqual(nsmallest(n, data), sorted(data)[:n])
 
     def test_largest(self):
         data = [random.randrange(2000) for i in range(1000)]
-        for i in (0, 1, 2, 10, 100, 400, 999, 1000, 1100):
-            self.assertEqual(nlargest(data, i), sorted(data, reverse=True)[:i])
+        for n in (0, 1, 2, 10, 100, 400, 999, 1000, 1100):
+            self.assertEqual(nlargest(n, data), sorted(data, reverse=True)[:n])
 
 def test_main(verbose=None):
     test_classes = [TestHeap]
index 8074bb111d3d45ec310ef3d901a518beae776256..21df796095b8347f9c15ca389e391b68ba3726d1 100644 (file)
@@ -222,7 +222,7 @@ nlargest(PyObject *self, PyObject *args)
        PyObject *heap=NULL, *elem, *iterable, *sol, *it, *oldelem;
        int i, n;
 
-       if (!PyArg_ParseTuple(args, "Oi:nlargest", &iterable, &n))
+       if (!PyArg_ParseTuple(args, "iO:nlargest", &n, &iterable))
                return NULL;
 
        it = PyObject_GetIter(iterable);
@@ -381,7 +381,7 @@ nsmallest(PyObject *self, PyObject *args)
        PyObject *heap=NULL, *elem, *iterable, *los, *it, *oldelem;
        int i, n;
 
-       if (!PyArg_ParseTuple(args, "Oi:nsmallest", &iterable, &n))
+       if (!PyArg_ParseTuple(args, "iO:nsmallest", &n, &iterable))
                return NULL;
 
        it = PyObject_GetIter(iterable);