Update the itertools.accumulate() docs.
authorRaymond Hettinger <python@rcn.com>
Fri, 3 Dec 2010 02:33:53 +0000 (02:33 +0000)
committerRaymond Hettinger <python@rcn.com>
Fri, 3 Dec 2010 02:33:53 +0000 (02:33 +0000)
Doc/library/itertools.rst
Lib/test/test_itertools.py

index befc6beb055bc415d740063efd34a8258730abd3..3c9f334201b4e8e112acaaf29c8e7d0c474471bc 100644 (file)
@@ -46,7 +46,7 @@ Iterator            Arguments               Results
 ====================    ============================    =================================================   =============================================================
 Iterator                Arguments                       Results                                             Example
 ====================    ============================    =================================================   =============================================================
-:func:`accumulate`      p[, start=0]                    p0, p0+p1, p0+p1+p2, ...                            ``accumulate([1,2,3,4,5]) --> 1 3 6 10 15``
+:func:`accumulate`      p                               p0, p0+p1, p0+p1+p2, ...                            ``accumulate([1,2,3,4,5]) --> 1 3 6 10 15``
 :func:`chain`           p, q, ...                       p0, p1, ... plast, q0, q1, ...                      ``chain('ABC', 'DEF') --> A B C D E F``
 :func:`compress`        data, selectors                 (d[0] if s[0]), (d[1] if s[1]), ...                 ``compress('ABCDEF', [1,0,1,0,1,1]) --> A C E F``
 :func:`dropwhile`       pred, seq                       seq[n], seq[n+1], starting when pred fails          ``dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1``
@@ -84,11 +84,10 @@ The following module functions all construct and return iterators. Some provide
 streams of infinite length, so they should only be accessed by functions or
 loops that truncate the stream.
 
-.. function:: accumulate(iterable, start=0)
+.. function:: accumulate(iterable)
 
-    Make an iterator that returns accumulated sums plus the value of the *start*
-    parameter (which defaults to :const:`0`). Elements may be any addable type
-    including :class:`Decimal` or :class:`Fraction`.  Equivalent to::
+    Make an iterator that returns accumulated sums. Elements may be any addable
+    type including :class:`Decimal` or :class:`Fraction`.  Equivalent to::
 
         def accumulate(iterable):
             'Return running totals'
index b8f6eecbbeb83168e7328138664c78c41a171dcb..b744636551ff52a7bd6d273ad5cd973b8c6ed0e0 100644 (file)
@@ -66,6 +66,7 @@ class TestBasicOps(unittest.TestCase):
             self.assertEqual(
                 list(accumulate(map(typ, range(10)))),
                 list(map(typ, [0, 1, 3, 6, 10, 15, 21, 28, 36, 45])))
+        self.assertEqual(list(accumulate('abc')), ['a', 'ab', 'abc'])   # works with non-numeric
         self.assertEqual(list(accumulate([])), [])                  # empty iterable
         self.assertEqual(list(accumulate([7])), [7])                # iterable of length one
         self.assertRaises(TypeError, accumulate, range(10), 5)      # too many args