TypeError: unsupported operand type(s) -: 'liste' et 'liste'
Je suis en train de mettre en œuvre la naïveté de Gauss et l'obtention de la unsupported operand type d'erreur à l'exécution.
Sortie:
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'
>>>
C'est le code
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]])
C'est votre problème de ligne:
Merci @JonKiparsky, c'était vraiment utile
b[row] = b[row]-xmult*b[column]
ligne est une liste, et b[colonne] est une liste, de sorte que vous êtes en essayant de soustraire une liste à partir d'un autre, qui (comme la sortie d'erreur vous dit) n'est pas une opération pris en charge.Merci @JonKiparsky, c'était vraiment utile
OriginalL'auteur Iliass | 2014-11-01
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas soustraire une liste à partir d'une liste.
Façon Simple de le faire est d'utiliser
numpy
:Vous pouvez également utiliser la liste de compréhension, mais il faudra changer le code de la fonction:
OriginalL'auteur falsetru
L'utilisation de Set en Python
OriginalL'auteur Harsh Kothari