Maison > développement back-end > Tutoriel Python > Pourquoi la modification d'une copie de dictionnaire Python modifie-t-elle également l'original ?

Pourquoi la modification d'une copie de dictionnaire Python modifie-t-elle également l'original ?

DDD
Libérer: 2024-12-23 09:04:34
original
452 Les gens l'ont consulté

Why Does Modifying a Python Dictionary Copy Also Change the Original?

Comprendre la copie de dictionnaires en Python

En Python, la manipulation des dictionnaires peut prêter à confusion lorsqu'il s'agit de copier leurs valeurs. Cet article aborde un problème courant rencontré lors de la modification d'une copie d'un dictionnaire pour découvrir que le dictionnaire d'origine a également changé.

Pour comprendre ce comportement, il est crucial de comprendre que Python n'effectue pas de copie d'objet implicite. Lorsque vous attribuez dict2 = dict1, vous ne créez pas un nouvel objet dictionnaire ; vous créez simplement une autre référence au même dictionnaire existant. Toute modification apportée à dict2 affectera donc directement dict1 car ils font tous deux référence à la même structure de données sous-jacente.

Pour éviter ce comportement et véritablement copier un dictionnaire, vous devez créer explicitement un nouvel objet dictionnaire. Deux méthodes peuvent y parvenir :

  • Utilisation de dict() : Le constructeur dict() prend un dictionnaire existant comme argument et renvoie un nouvel objet dictionnaire avec une copie de tous les valeur-clé paires.

Exemple :

dict2 = dict(dict1)
Copier après la connexion
  • Utilisation de copy() : La méthode copy() d'un dictionnaire crée un nouvel objet dictionnaire avec une copie superficielle du original.

Exemple :

dict2 = dict1.copy()
Copier après la connexion

En utilisant ces techniques, vous pouvez vous assurer que les modifications apportées à dict2 n'affecteront pas le dict1 d'origine, vous permettant pour conserver l'état du dictionnaire original tout en manipulant sa version copiée.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal