summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2009-01-27 06:38:00 (GMT)
committerRaymond Hettinger <python@rcn.com>2009-01-27 06:38:00 (GMT)
commitcdc9f2c1d573a4ae96ac592c303f7f443a704859 (patch)
tree70226b9147394c271500f32ec4af56edcb2b5200
parentbadbba4f99c13e8ebc804ec0f404665a3d89fc11 (diff)
downloadcpython-cdc9f2c1d573a4ae96ac592c303f7f443a704859.zip
cpython-cdc9f2c1d573a4ae96ac592c303f7f443a704859.tar.gz
cpython-cdc9f2c1d573a4ae96ac592c303f7f443a704859.tar.bz2
Fixup itertools recipe to cover a corner case.
-rw-r--r--Doc/library/itertools.rst2
-rw-r--r--Lib/test/test_itertools.py2
2 files changed, 4 insertions, 0 deletions
diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst
index dd998f6..871b0cb 100644
--- a/Doc/library/itertools.rst
+++ b/Doc/library/itertools.rst
@@ -686,6 +686,8 @@ which incur interpreter overhead.
# number items returned: (n+r-1)! / r! / (n-1)!
pool = tuple(iterable)
n = len(pool)
+ if not n and r:
+ return
indices = [0] * r
yield tuple(pool[i] for i in indices)
while 1:
diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py
index 0f1f695..a45e608 100644
--- a/Lib/test/test_itertools.py
+++ b/Lib/test/test_itertools.py
@@ -1268,6 +1268,8 @@ Samuele
... "combinations_with_replacement('ABC', 3) --> AA AB AC BB BC CC"
... pool = tuple(iterable)
... n = len(pool)
+... if not n and r:
+... return
... indices = [0] * r
... yield tuple(pool[i] for i in indices)
... while 1: