X Tutup
Skip to content

Latest commit

 

History

History
98 lines (74 loc) · 3.03 KB

File metadata and controls

98 lines (74 loc) · 3.03 KB
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).
Module Copy Python

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).

Opérations de copie superficielle (Shallow copy)

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

Sans importer le module copy, vous ne pouvez pas l'utiliser

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'copy' is not defined

Opérations de copie profonde (Deep copy)

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

Liens pertinents

  • Cheatsheet : Bases de l'OOP
  • Cheatsheet : Listes et Tuples
  • Cheatsheet : Dictionnaires
  • Blog : Types de données Python
  • object()
  • list()
  • dict()
  • slice()
X Tutup