Bonjour a toutes et a tous ,
Je ne parviens pas a saisir la nuance entre ces 2 exemples qui parviennent au meme résultat :
1 er :
cellule = [0]
liste = [cellule, cellule, cellule]
# puis
liste[0][0] = 1
En tapant liste , j'obtiens :
[[1],[1],[1]]
# La , j'affecte a ma variable 'cellule' une liste de valeur 0
# puis j'affecte a ma variable liste 3 fois cellules , ce qui me donne apres avoir tapé ' liste ':
[[0],[0],[0]]
Les 3 éléments de liste étant mutable , leur références est partagées .
#Donc si je fais :
liste[0][0] = 1
# je réaffecte au 1 er élément de liste la valeur 1 , et comme toutes les références sont partagés,
# cela va me donner :
[[1],[1],[1]]
Jusqu'a la pas de probleme .
Par contre pour mon 2 ème exemple :
cellule = [0]
liste = [cellule, cellule, cellule]
# puis
cellule[0] = 1
# En tapant liste , j'obtiens aussi :
[[1],[1],[1]]
# Cette fois ci , le début de l'exemple est le meme
# Mais ensuite je fais :
cellule[0] = 1
# Je n'actualise pas la variable liste avec ce changement et pourtant en tapant liste j'obtiens également ::
[[1],[1],[1]]
Que se passe t il ?