<p>好的旧清单理解呢?(正如@Turksarama提到的,这只适用于两个列表)</p>
<pre><code>sum([x * y for x, y in zip(*lists)])
</code></pre>
<p>在Python3.6中测试:</p>
<pre><code>In [532]: import random
In [534]: x = [random.randint(0,100) for _ in range(100)]
In [535]: y = [random.randint(0,100) for _ in range(100)]
In [536]: lists = x, y
</code></pre>
<p>使用列表理解</p>
<pre><code>In [543]: %timeit(sum([x * y for x, y in zip(*lists)]))
8.73 µs ± 24.3 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
</code></pre>
<p>注意“tuple”理解是<a href="https://stackoverflow.com/questions/43808180/python-3-x-list-comprehension-vs-tuple-generator">slower</a></p>
<pre><code>In [537]: %timeit(sum(x * y for x, y in zip(*lists)))
10.5 µs ± 170 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
</code></pre>
<p>使用<code>map</code></p>
<pre><code>In [539]: %timeit(sum(map(lambda xi, yi: xi * yi, x, y)))
12.3 µs ± 144 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
</code></pre>
<p>使用<code>functools.reduce</code></p>
<pre><code>In [542]: %timeit(sum(functools.reduce(operator.mul, data) for data in zip(*lists)))
38.6 µs ± 330 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
</code></pre>