From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Sun, 4 Aug 2019 20:52:59 +0000 (-0700) Subject: Update itertools docs (GH-15114) (GH-15118) X-Git-Tag: v3.8.0b4~131 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fc6e3bc1cdaabac89382b45459f9b3f84d929afd;p=python Update itertools docs (GH-15114) (GH-15118) * Remove suggestion that is less relevant now that global lookups are much faster * Add link for installing the recipes (cherry picked from commit adf02b36b3f3745ad4ee380d88f2f6011f54fc22) Co-authored-by: Raymond Hettinger --- diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst index b3a0a5f519..a3f403a5b4 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))