J'ai un problème bizarre avec un devoir que j'ai reçu. Nous sommes censés implémenter une classe de matrice. Ce n'est pas si difficile, mais Python ne fait pas ce que je lui dis de faire. Mais je suis sûr qu'il y a une explication.
Le problème est que, dans le code suivant, j'essaie d'enregistrer des valeurs (fournies dans une liste) dans une matrice.
class simplematrix:
matrix = [[]]
def __init__(self, * args):
lm = args[0]
ln = args[1]
values = args[2]
self.matrix = [[0]*ln]*lm
for m in range(lm):
for n in range(ln):
self.matrix[m][n] = values[(m*ln)+n]
vals = [0,1,2,3,4,5]
a = simplematrix(2,3,vals)
Lorsque j'essaie d'imprimer la matrice, je m'attends à obtenir [[0,1,2], [3,4,5]], ce que j'obtiens si je l'exécute à la main, sur une feuille de papier. Si j'imprime la matrice depuis Python, j'obtiens [[3,4,5], [3,4,5]] à la place. Quelqu'un peut-il me dire pourquoi Python agit de la sorte, ou si j'ai fait une erreur stupide quelque part ? :)