回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个函数,它应该将矩阵奇数行中的每个元素增加5,偶数行中的每个元素增加10。我写了下面的代码:</p>
<pre><code>def incrementRows(matrix):
for i in matrix:
print(matrix.index(i))
if matrix.index(i) % 2 == 0:
matrix[matrix.index(i)] = [x + 5 for x in matrix[matrix.index(i)]]
else:
matrix[matrix.index(i)] = [x + 10 for x in matrix[matrix.index(i)]]
return matrix
matrix = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]
print(incrementRows(matrix))
</code></pre>
<p>这个代码的问题是,从印刷品来看(矩阵索引(i) )语句,循环从不传递列表中的第一项。我不明白为什么。以下是输出:</p>
<pre><code>0
0
0
[[16, 17, 18, 19, 20], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
</code></pre>
<p>如果我从函数中取出If/else语句,那么循环将正确地遍历列表中的每个项。你知道吗</p>
<pre><code>def incrementRows(matrix):
for i in matrix:
print(matrix.index(i))
return matrix
matrix = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]]
print(incrementRows(matrix))
</code></pre>
<p>结果:</p>
<pre><code>0
1
2
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
</code></pre>
<p>有人能告诉我为什么函数中的If/else语句阻止循环遍历列表中的每一项吗?你知道吗</p>