From: Raymond Hettinger Date: Sun, 4 Aug 2019 20:35:58 +0000 (-0700) Subject: Update itertools docs (GH-15114) X-Git-Tag: v3.9.0a1~918 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=adf02b36b3f3745ad4ee380d88f2f6011f54fc22;p=thirdparty%2FPython%2Fcpython.git Update itertools docs (GH-15114) * Remove suggestion that is less relevant now that global lookups are much faster * Add link for installing the recipes --- diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst index b3a0a5f5192d..a3f403a5b40b 100644 --- a/Doc/library/itertools.rst +++ b/Doc/library/itertools.rst @@ -691,6 +691,12 @@ Itertools Recipes This section shows recipes for creating an extended toolset using the existing itertools as building blocks. +Substantially all of these recipes and many, many others can be installed from +the `more-itertools project `_ found +on the Python Package Index:: + + pip install more-itertools + The extended tools offer the same high performance as the underlying toolset. The superior memory performance is kept by processing elements one at a time rather than bringing the whole iterable into memory all at once. Code volume is @@ -913,9 +919,3 @@ which incur interpreter overhead. result.append(pool[-1-n]) return tuple(result) -Note, many of the above recipes can be optimized by replacing global lookups -with local variables defined as default values. For example, the -*dotproduct* recipe can be written as:: - - def dotproduct(vec1, vec2, sum=sum, map=map, mul=operator.mul): - return sum(map(mul, vec1, vec2))