Bonsoir à tous,
débutant en python, j'ai voulu créer une grille toute bête pour un jeu tout aussi simple, mais en tentant de modifier l'une des cases ensuite, je constate que j'en modifie plusieurs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
grille = [[0] * 2] * 3
print(grille)
grille[0][0] = 1
print(grille,"\n")
qui produit :
[[0, 0], [0, 0], [0, 0]]
[[1, 0], [1, 0], [1, 0]]

Pour obtenir le résultat souhaité, j'ai tenté :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
grille1 = [[0,0],[0,0],[0,0]] 
print(grille1)
grille1[0][0] = 1
print(grille1)
qui donne le résultat voulu :
[[0, 0], [0, 0], [0, 0]]
[[1, 0], [0, 0], [0, 0]]


Je ne parviens pas m'expliquer ce qui se passe dans le premier cas (même variable exprimée dans plusieurs cases ?) et, en particulier s'il est possible de modifier un seul élément de la première grille.

Merci pour votre aide !