【发布时间】:2018-02-23 12:02:42
【问题描述】:
我收到以下错误:
PrimaryDiagonalSum+=v
TypeError:+= 不支持的操作数类型:“int”和“list”
我只是想从一个通过映射转换为 int 的列表中检索一个 int。 我究竟做错了什么?
#!/bin/python
import sys
arraySize = int(raw_input().strip())
array = []
for i in xrange(arraySize):
temp = map(int,raw_input().strip().split(' '))
array.append(temp)
counterPrimaryDiagonal=0
counterSecondaryDiagonal=arraySize-1
PrimaryDiagonalSum=0
SecondaryDiagonalSum=0
for i in range(arraySize-1):
v=array[counterPrimaryDiagonal]
v2=array[counterSecondaryDiagonal]
PrimaryDiagonalSum+=v
SecondaryDiagonalSum+=v2
counterPrimaryDiagonal=counterPrimaryDiagonal+arraySize+1
counterSecondaryDiagonal=counterSecondaryDiagonal+arraySize-1
print(abs(PrimaryDiagonalSum-SecondaryDiagonalSum))
【问题讨论】:
-
您希望通过
pd += v实现什么目标?如错误所述,pd 是一个 int,而 v 是一个列表。 -
有点不相关,但是您是否故意使用完全没有意义的变量名称只是为了混淆读者?有意义的变量名称使代码可读,并且更容易推理可读代码和发现逻辑错误。
-
如果我使用 a[cp] 仅提取数组 a 的一项,v 怎么会是一个列表?
-
看看行 v2=a[cs] 它返回相同的错误
-
@brunodesthuilliers 这是黑客等级。部分名称出现在他们身上,并且更正是自动的,无需人工阅读。我可以根据问题更改它。
标签: python