Sobes.tech
Junior — Middle

Explique ce qu'est la copie superficielle d'objets en Python et en quoi elle diffère de la copie profonde.

sobes.tech IA

Réponse de l'IA

La copie superficielle (shallow copy) en Python crée un nouvel objet, mais les objets imbriqués à l’intérieur ne sont pas copiés, seules leurs références le sont. Autrement dit, si l’objet contient des structures modifiables imbriquées (par exemple, des listes, des dictionnaires), elles seront partagées entre l’original et la copie.

La copie profonde (deep copy) crée un nouvel objet et copie récursivement tous les objets imbriqués, créant une copie totalement indépendante.

Exemple:

import copy

original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)

shallow[1].append(4)
print(original)  # Affichera: [1, [2, 3, 4]] — la liste imbriquée a changé aussi dans l’original
print(deep)      # Affichera: [1, [2, 3]] — la copie profonde n’a pas changé

Ainsi, la copie superficielle convient lorsque les objets imbriqués ne changent pas, et la copie profonde lorsque l’indépendance totale de la copie par rapport à l’original est nécessaire.