我认为一个接一个地分解你的尝试,并讨论每一个尝试中出现的问题是有指导意义的。在
对于初学者来说,您的输入列表是一个二维的数字列表。你需要把它们投给int,最好是马上就投。但是,我假设您在代码中使用的输入列表如下所示:[['1', '1', '-2'], ['-1', '-2', '-3'], ['1', '1', '1']]
它需要将其元素强制转换为int以避免崩溃。在
尝试1
您的代码:
^{pr2}$
主要的误解是您的语句for row in numbers:循环遍历numbers列表中的实际列表,而不是该列表的索引。换句话说,row在第一次迭代中等于['1', '1', '-2'],而不是{}。在
类似地,for column in numbers:被错误地标记,并且还迭代行列表,而不是行中预期的单元格。当您尝试使用这些项索引到列表numbers时,会发生崩溃。您的代码正在执行以下操作:numbers[['1', '1', '-2']][['1', '1', '-2']] # crash
通过不尝试索引到numbers列表,而是使用row和column元素来计算总数,可以解决这个问题。在
您还存在一个逻辑错误,该错误过早地将rowtotal添加到聚合total中,这会超出计数。在
最后,前两行什么也不做,因为循环变量覆盖了值;删除它们。在