Méthode copy() du dictionnaire Python
Description
La fonction copy() d'un dictionnaire Python renvoie une copie superficielle d'un dictionnaire.
Syntaxe
Syntaxe de la méthode copy() :
dict.copy()
Parameters
- NA.
Valeur de retour
Renvoie une copie superficielle d'un dictionnaire.
Exemples
L'exemple suivant démontre l'utilisation de la fonction copy() :
Exemple
#!/usr/bin/python
dict1 = {'Name': 'Zara', 'Age': 7};
dict2 = dict1.copy()
print "Nouveau dictionnaire : %s" % str(dict2)
La sortie de l'exemple ci-dessus est :
New Dictinary : {'Age': 7, 'Name': 'Zara'}
Différence entre l'affectation directe et copy
Ceci peut être illustré par l'exemple suivant :
Exemple
#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict1 = {'user':'example','num':[1,2,3]}
dict2 = dict1 # Copie superficielle : objet de référence
dict3 = dict1.copy() # Copie superficielle : copie en profondeur l'objet parent (répertoire de premier niveau), mais ne copie pas l'objet enfant (répertoire de deuxième niveau) ; il reste une référence
# Modifier les données
dict1['user']='root'
dict1['num'].remove(1)
# Afficher le résultat
print(dict1)
print(dict2)
print(dict3)
Dans l'exemple, dict2 est en fait une référence (alias) de dict1, donc les résultats affichés sont identiques. L'objet parent de dict3 est copié en profondeur et ne changera pas avec les modifications de dict1, mais l'objet enfant est copié superficiellement, donc il change avec les modifications de dict1.
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'example'}
Approfondissement des connaissances
Analyse de l'affectation directe, de la copie superficielle et de la copie profonde en Python
Autres extensions
Dictionnaire Python