| title | Module Copie Python - Aide-mémoire Python |
|---|---|
| description | Le module Copy fournit des fonctions pour copier différents éléments (listes, objets, tableaux, etc.). Il permet de créer des copies superficielles (shallow) et des copies profondes (deep). |
Le module Copy est un ensemble de fonctions liées à la copie de différents éléments d'une liste, d'objets, de tableaux, etc. Il peut être utilisé pour créer des copies superficielles (shallow copies) ainsi que des copies profondes (deep copies).
De la documentation Python 3 ici Les instructions d'affectation en Python ne copient pas les objets, elles créent des liaisons entre une cible et un objet. Pour les collections qui sont mutables ou contiennent des éléments mutables, une copie est parfois nécessaire afin de pouvoir modifier une copie sans modifier l'autre. Ce module fournit des opérations génériques de copie superficielle (shallow) et profonde (deep).Une copie superficielle construit un nouvel objet composé, puis y insère (dans la mesure du possible) des références aux objets trouvés dans l'original.
copy.copy(x) Retourne une copie superficielle de x.
import copy
a = [[1],[2],[3]]
# Créer une copie superficielle (les listes imbriquées sont toujours référencées)
b = copy.copy(a)
a[[1], [2], [3]]
b[[1], [2], [3]]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'copy' is not defined
Une copie profonde construit un nouvel objet composé, puis y insère récursivement des copies des objets trouvés dans l'original.
copy.deepcopy(x[, memo]) Retourne une copie profonde de x.
import copy
a = [[1],[2],[3]]
# Créer une copie profonde (copie complètement indépendante)
b = copy.deepcopy(a)
# Modifier l'original
a[0][0] = 0
a[1] = None
a[[0], None, [3]]
b[[1], [2], [3]]
- Cheatsheet : Bases de l'OOP
- Cheatsheet : Listes et Tuples
- Cheatsheet : Dictionnaires
- Blog : Types de données Python
- object()
- list()
- dict()
- slice()