Maison >développement back-end >Tutoriel Python >Comment créer de véritables copies de dictionnaires Python ?

Comment créer de véritables copies de dictionnaires Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-29 07:11:14725parcourir

How to Create True Copies of Python Dictionaries?

Préserver les dictionnaires originaux : séparer les copies de l'origine

Lorsque vous travaillez avec des dictionnaires Python, il est crucial de comprendre que l'affectation ne crée pas de copies. L'attribution d'un dictionnaire à un autre, comme dans dict2 = dict1, établit les deux variables comme références pointant vers le même objet dictionnaire. Par conséquent, les modifications apportées à l'un ou l'autre dictionnaire affectent les deux.

La solution : la copie explicite

Pour éviter ce comportement et préserver le dictionnaire original, une copie explicite est nécessaire. Python propose deux méthodes pour y parvenir :

Méthode 1 : Utiliser dict(dict1)

dict2 = dict(dict1)

Cette méthode crée un nouveau dictionnaire qui est une copie exacte de dict1 .

Méthode 2 : Utiliser dict1.copy()

dict2 = dict1.copy()

Cette méthode génère également un nouveau dictionnaire qui est un double de dict1.

Démonstration

Pour illustrer la différence entre référence et copie, considérons l'exemple suivant :

dict1 = {"key1": "value1", "key2": "value2"}

# Copy dict1 using dict(dict1)
dict2 = dict(dict1)
dict2["key2"] = "WHY?!"
print(dict1)  # Output: {'key1': 'value1', 'key2': 'value2'}

# Copy dict1 using dict1.copy()
dict3 = dict1.copy()
dict3["key2"] = "CHANGED!"
print(dict1)  # Output: {'key1': 'value1', 'key2': 'value2'}

Dans cet exemple, dict2 et dict3 fait référence à des dictionnaires distincts. La modification de l'une ou l'autre copie n'affecte pas le dictionnaire d'origine dict1.

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:
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