Notez les précautions à prendre lors de la copie de listes en Python. Pour plus de détails, veuillez rechercher «passer par valeur / passer par référence».
Regardez le code ci-dessous avant de l'expliquer avec des mots.
X = 2
Y = X
Y = 5
print('Y = ', Y)
print('X = ', X)
Si vous faites cela, bien sûr
Y = 5
X = 2
Le résultat est obtenu. Ensuite, essayez d'exécuter le code suivant.
i = [1, 2, 3, 4, 5]
j = i
j[0] = 100
print('j = ', j)
print('i = ', i)
Ici, une liste appelée i est décidée, i est affecté à j, la valeur du numéro d'index 0 de j est fixée à 100, et i et j sont émis respectivement. Le résultat est
j = [100, 2, 3, 4, 5]
i = [100, 2, 3, 4, 5]
Et j'ai aussi changé. La cause de ceci peut être confirmée par le code suivant.
print(id(X))
print(id(Y))
print(id(i))
print(id(j))
4436251808
4436251904
4304286176
4304286176
Il s'avère que X et Y avec les valeurs assignées ont des identifiants différents, tandis que i et j avec la liste assignée ont le même identifiant. Par conséquent, dans la liste, les modifications apportées à j seront également reflétées dans i. Par conséquent, lors de la copie de la liste,
j = i.copy()
J'ai entendu dire que vous copiez rarement des listes, donc je ne pense pas que vous les utiliserez très souvent, mais faites attention à ne pas générer de bogues.