Maison > développement back-end > Tutoriel Python > Pourquoi la modification d'une variable de liste en Python affecte-t-elle également une autre variable qui lui est affectée ?

Pourquoi la modification d'une variable de liste en Python affecte-t-elle également une autre variable qui lui est affectée ?

Patricia Arquette
Libérer: 2024-11-02 18:55:30
original
885 Les gens l'ont consulté

Why Does Modifying a List Variable in Python Also Affect Another Variable Assigned to It?

Mutations de liste inattendues : comprendre les effets des références

En Python, les variables de liste représentent des références à des tableaux stockés en mémoire. Lors de l'attribution d'une variable de liste à une autre (par exemple, vec = v), ce qui se passe en réalité, c'est que l'adresse du tableau est transmise au lieu de copier le tableau lui-même.

Cela signifie que toute modification apportée à une liste sera affectent également l’autre liste qui pointe vers la même adresse mémoire. Par exemple, considérons le code suivant :

<code class="python">v = [0,0,0,0,0,0,0,0,0]
vec = v
vec[5] = 5</code>
Copier après la connexion

Après avoir exécuté le code ci-dessus, v et vec contiendront les valeurs suivantes :

[0, 0, 0, 0, 0, 5, 0, 0, 0]
Copier après la connexion

Cela se produit parce que vec et v font tous deux référence le même tableau en mémoire. Lorsque la valeur à l'index 5 de vec est modifiée à 5, le changement se reflète non seulement dans vec, mais aussi dans v, puisque les deux variables pointent vers le même tableau sous-jacent.

Pour créer de véritables copies d'une liste , utilisez la méthode copy() ou le constructeur list() avec la liste d'origine comme argument, comme indiqué ci-dessous :

<code class="python">vec = v.copy()
vec = list(v)</code>
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal