[Python-checkins] Add "strict" to dotproduct(). Add docstring. Factor-out common code. (GH-100480)

rhettinger webhook-mailer at python.org
Fri Dec 23 18:52:21 EST 2022


https://github.com/python/cpython/commit/f89de679ffec35e82548341cb23e675546602288
commit: f89de679ffec35e82548341cb23e675546602288
branch: main
author: Raymond Hettinger <rhettinger at users.noreply.github.com>
committer: rhettinger <rhettinger at users.noreply.github.com>
date: 2022-12-23T15:52:16-08:00
summary:

Add "strict" to dotproduct(). Add docstring. Factor-out common code. (GH-100480)

files:
M Doc/library/itertools.rst

diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst
index 9146ed1bfb62..9688aae68e6c 100644
--- a/Doc/library/itertools.rst
+++ b/Doc/library/itertools.rst
@@ -834,7 +834,8 @@ which incur interpreter overhead.
        return chain.from_iterable(repeat(tuple(iterable), n))
 
    def dotproduct(vec1, vec2):
-       return sum(map(operator.mul, vec1, vec2))
+       "Compute a sum of products."
+       return sum(starmap(operator.mul, zip(vec1, vec2, strict=True)))
 
    def convolve(signal, kernel):
        # See:  https://betterexplained.com/articles/intuitive-convolution/
@@ -846,7 +847,7 @@ which incur interpreter overhead.
        window = collections.deque([0], maxlen=n) * n
        for x in chain(signal, repeat(0, n-1)):
            window.append(x)
-           yield sum(map(operator.mul, kernel, window))
+           yield dotproduct(kernel, window)
 
    def polynomial_from_roots(roots):
        """Compute a polynomial's coefficients from its roots.



More information about the Python-checkins mailing list