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']
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
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!