Maison > développement back-end > Tutoriel Python > Une explication simple de la copie profonde et superficielle en python (avec code)

Une explication simple de la copie profonde et superficielle en python (avec code)

不言
Libérer: 2018-10-27 16:03:55
avant
2014 Les gens l'ont consulté

Ce que cet article vous apporte est une explication simple de la copie profonde et superficielle en Python (avec du code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Revoir, copier en profondeur.

Code ci-dessus :

# -*- coding: utf-8 -*-
"""
Created on Thu Sep 20 14:18:48 2018

@author: Lenovo
"""

import copy,json

a={"ab":1,"cd":{"ef":2},"gh":[1,2,3]}
print "a1:",a

b=dict(a["cd"])
c=copy.copy(a)
d=copy.deepcopy(a)
e=a["cd"]
a["cd"]["xy"]=3
a["fx"]=5
a["cd"]["ef"]=20
print "a2:",a
print "b :",b
print "c :",c
print "d :",d
print "e :",e
Copier après la connexion

Résultat :

a1: {'gh': [1, 2, 3], 'ab': 1, 'cd': {'ef': 2}}
a2: {'gh': [1, 2, 3], 'fx': 5, 'ab': 1, 'cd': {'xy': 3, 'ef': 20}}
b : {'ef': 2}
c : {'cd': {'xy': 3, 'ef': 20}, 'ab': 1, 'gh': [1, 2, 3]}
d : {'cd': {'ef': 2}, 'ab': 1, 'gh': [1, 2, 3]}
e : {'xy': 3, 'ef': 20}
Copier après la connexion

Comme le montre le résultat :

La commande dict() crée un new Dictionary;

"="L'affectation équivaut à utiliser le concept de "référence";

copy.copy est une copie superficielle entraînera des modifications correspondantes, de nouveaux ajouts. ou autre Si les informations non copiées sont modifiées, l'objet de copie superficielle ne sera pas modifié

Par exemple, la plage de copie c est "gh", "ab", "cd" si la valeur de celles-ci. Modification de trois clés, l'objet sera modifié en conséquence après la copie, mais si d'autres informations sont modifiées, comme l'ajout de la clé "fx", l'objet copié ne sera pas modifié.

copy.deepcopy est une copie profonde, créant un tout nouvel objet.

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!

Étiquettes associées:
source:csdn.net
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