【发布时间】:2014-12-28 10:09:31
【问题描述】:
我正在尝试实现朴素高斯并在执行时遇到不支持的操作数类型错误。 输出:
execfile(filename, namespace)
File "/media/zax/MYLINUXLIVE/A0N-.py", line 26, in <module>
print Naive_Gauss([[2,3],[4,5]],[[6],[7]])
File "/media/zax/MYLINUXLIVE/A0N-.py", line 20, in Naive_Gauss
b[row] = b[row]-xmult*b[column]
TypeError: unsupported operand type(s) for -: 'list' and 'list'
>>>
这是代码
def Naive_Gauss(Array,b):
n = len(Array)
for column in xrange(n-1):
for row in xrange(column+1, n):
xmult = Array[row][column] / Array[column][column]
Array[row][column] = xmult
#print Array[row][col]
for col in xrange(0, n):
Array[row][col] = Array[row][col] - xmult*Array[column][col]
b[row] = b[row]-xmult*b[column]
print Array
print b
print Naive_Gauss([[2,3],[4,5]],[[6],[7]])
【问题讨论】:
-
这是您的问题行:
b[row] = b[row]-xmult*b[column]row 是一个列表,而 b[column] 是一个列表,因此您试图从另一个列表中减去一个列表(如错误输出所示you) 不是受支持的操作。 -
谢谢@JonKiparsky,这真的很有帮助
标签: python python-2.7 list typeerror operands