我必须做一个接受数组的函数,其中第一个元素是矩阵的列数和行数,其余的是矩阵本身。我必须返回对角线和之间的绝对差
我的问题是解释器返回此回溯:
File "Solution.py", line 23, in diagonalDifference
while counter != n + 1:
TypeError: can only concatenate list (not "int") to list
我不知道为什么它像列表一样包含“n”,它是“lis”列表的第一个元素
这是密码
def diagonalDifference(arr):
sumleftdiagonal = 0
sumrightdiagonal = 0
counter = 0
lis = [i for i in arr]
n = lis[0]
lis.remove(lis[0])
while counter != n + 1:
sumleftdiagonal += lis[0 + counter]
sumrightdiagonal += [n - counter]
counter += 1
for i in lis[:n+1]:
lis.remove(i)
return abs(sumleftdiagonal - sumrightdiagonal)
在这一行中,您试图附加一个包含
n - counter
的列表,我假设您在这里指的是lis[n - counter]
解决方案
您的代码不起作用,因为您实际上是在计算方阵第一行与自身的差异
您可以验证我使用的伪数据的
sumleftdiagonal = [ 1, 2, 3, 4, 5]
和sumrightdiagonal = [5, 4, 3, 2, 1]
纯肾盂液
方法一:
just python
输出:
使用
numpy
如果您可以使用
numpy
,那么至少有两种方法方法2:使用
numpy
输出:
方法3:使用
numpy
输出:
相关问题 更多 >
编程相关推荐