<p>我注意到在以前的回答中有一种模式。它们都使用<a href="https://docs.python.org/3/library/functions.html#zip" rel="nofollow noreferrer">^{<cd1>}</a>和<a href="https://docs.python.org/3/library/functions.html#sum" rel="nofollow noreferrer">^{<cd2>}</a></p>
<p>可以处理2个以上列表的备选方案如下</p>
<pre><code>def addMatrix(*matrices):
return [
[sum(values) for values in zip(*rows)]
for rows in zip(*matrices)
]
</code></pre>
<p>如果我们以下面的矩阵为例</p>
<pre><code>matrix1 = [[1, 1], [2, 3]]
matrix2 = [[1, 1], [2, 3]]
matrix3 = [[1, 1], [2, 3]]
</code></pre>
<p>并打印结果</p>
<pre><code>>>> print(addMatrix(matrix1, matrix2, matrix3))
[[3, 3], [6, 9]]
</code></pre>
<p><a href="https://docs.python.org/3/library/functions.html#zip" rel="nofollow noreferrer">^{<cd1>}</a>实际上,可以方便地同时循环两个列表。这里有一种只使用<a href="https://docs.python.org/3/library/functions.html#zip" rel="nofollow noreferrer">^{<cd1>}</a>的方法</p>
<pre><code>def addMatrix(matrix1, matrix2):
return [
[n + m for n, m in zip(row1, row2)]
for row1, row2 in zip(matrix1, matrix2)
]
</code></pre>
<p>或者,在一行中</p>
<pre><code>def addMatrix(matrix1, matrix2):
return [[n+m for n, m in zip(r1, r2)] for r1, r2 in zip(matrix1, matrix2)]
</code></pre>