Duplicate possible:
Python list problemmatrice Initialiser en python
J'essaie d'initialiser une matrice en python. D'abord, je l'ai fait:
>>> M=[[0]*4]*4
Mais voici mon Probleme, chaque ligne change quand je change le premier:
>>> M
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
>>> M[1][1]=1
>>> M
[[0, 1, 0, 0], [0, 1, 0, 0], [0, 1, 0, 0], [0, 1, 0, 0]]
donc je l'ai fait de cette façon:
>>> M= [ [ 0 for i in range(4) ] for j in range(4) ]
Et ut fonctionne très bien:
>>> M
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
>>> M[1][1]=1
>>> M
[[0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
Ma question est:
Qu'est-ce que ces deux expressions signifient vraiment? et pourquoi le premier se comporte ainsi?
Merci d'avance pour votre aide.