Mutation de liste inattendue
Lors de la création d'une liste comme v = [0,0,0,0,0,0,0,0 ,0], vous pouvez supposer que l'attribution d'une nouvelle liste à une variable crée une référence distincte. Cependant, un code comme celui-ci peut démontrer un comportement inattendu :
<code class="python">vec = v vec[5] = 5</code>
Vec et v contiennent désormais la valeur 5 à l'index 5. Pourquoi cela se produit-il ?
Affectation de référence
En Python, les listes sont des objets mutables. L'attribution de vec = v ne crée pas de nouvelle copie de la liste. Au lieu de cela, il attribue une référence à v. Vec et v pointent tous deux vers le même objet de liste sous-jacent en mémoire.
Toute modification apportée à vec ou v affectera la liste d'origine car il s'agit de la même liste. C'est pourquoi lorsque vec[5] est modifié, v change également.
Solution
Pour créer une copie distincte de la liste, utilisez la fonction list() :
<code class="python">vec = list(v)</code>
Cela crée un nouvel objet de liste qui contient une copie des éléments de v. Toute modification apportée à vec n'affectera pas v, et vice versa.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!