Maison > développement back-end > Tutoriel Python > Pourquoi la modification d'une variable de copie affecte-t-elle la variable d'origine en Python ?

Pourquoi la modification d'une variable de copie affecte-t-elle la variable d'origine en Python ?

Mary-Kate Olsen
Libérer: 2024-12-14 19:11:13
original
679 Les gens l'ont consulté

Why Does Changing a Copy Variable Affect the Original Variable in Python?

Python : Pourquoi la modification d'une variable de copie affecte la variable d'origine

En Python, vous pouvez rencontrer un comportement particulier où les modifications apportées à une copie La variable semble également modifier la variable d'origine. Cela se produit parce que les variables Python stockent des références plutôt que des valeurs réelles.

Pour comprendre cela, considérons la situation décrite :

org_list = ['y', 'c', 'gdp', 'cap']
copy_list = org_list       # Pass reference to org_list
copy_list.append('hum')

print(copy_list)           # ['y', 'c', 'gdp', 'cap', 'hum']
print(org_list)            # ['y', 'c', 'gdp', 'cap', 'hum']
Copier après la connexion

Lorsque vous attribuez copy_list à org_list, vous ne créez pas de nouvelle liste mais plutôt en établissant une référence au même objet de liste en mémoire. Par conséquent, toute modification apportée à copy_list ou org_list affecte directement les deux variables.

Pour créer une copie véritablement indépendante, vous devez transmettre une copie des données réelles, plutôt qu'une référence. Cela peut être fait en utilisant l'opérateur d'affectation de tranche :

copy_list = org_list[:]    # Create a deep copy by slicing
Copier après la connexion

En découpant la liste d'origine, vous créez un nouvel objet de liste avec sa propre copie des données. Toute modification apportée à copy_list n'affectera pas org_list, 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!

source:php.cn
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