<p>您的解决方案存在几个问题:</p>
<ul>
<li>输入参数中有一个输入错误,它应该命名为<code>initial_list</code>,而不是<code>inital_list</code></李>
<li>您必须像这样访问输入列表:<code>initial_list[i]</code>,这是不正确的:<code>list[i]</code></李>
<li>您正在销毁此行中的输入列表:<code>initial_list = list()</code>(这就是结果为空的原因。)</li>
<li>在内环的每次迭代中,总和都会丢失在这一行:<code>sublistsum = 0</code>,这就是为什么这一部分必须在内环之前进行<em></李>
<li>添加子列表中的所有元素后,行<code>finalList.append(sublistsum)</code>必须在内部循环之后<em></李>
</ul>
<p>这将解决以下问题:</p>
<pre><code>def sumSublist(initial_list):
i = 0
finalList = []
while i < len(initial_list):
sublist = initial_list[i]
sublistsum = 0
for j in sublist:
sublistsum += j
finalList.append(sublistsum)
i += 1
return finalList
</code></pre>
<p>但是,如果我们始终使用<code>for</code>,上述解决方案可以简化:</p>
<pre><code>def sumSublist(initial_list):
finalList = []
for sublist in initial_list:
sublistsum = 0
for num in sublist:
sublistsum += num
finalList.append(sublistsum)
return finalList
</code></pre>
<p>但在现实生活中,我们应该使用<code>sum</code>和列表理解,这就是我们用Python编写惯用解决方案的方式:</p>
<pre><code>def sumSublist(initial_list):
return [sum(sublist) for sublist in initial_list]
</code></pre>
<p>无论如何,它的工作原理与预期相符:</p>
<pre><code>sumSublist([[5, 4], [2, 1, 7], [1]])
=> [9, 10, 1]
</code></pre>