Retour aux quiz
Débutant

Copie profonde avec deepcopy (2)

Combien d'itérations cette boucle effectue-t-elle ?

quiz.py
1
import copy
2
 
3
x = [[1, 2, 3], [4, 5, 6]]
4
y = copy.deepcopy(x)
5
y[1].append(7)
6
print(x, y)

Réponses possibles

A[[1, 2, 3], [4, 5, 6, 7]] [[1, 2, 3], [4, 5, 6]]
B[[1, 2, 3], [4, 5, 6]] [[1, 2, 3], [4, 5, 6, 7]]
C[[1, 2, 3], [4, 5, 6, 7]] [[1, 2, 3], [4, 5, 6, 7]]
D[[1, 2, 3], [4, 5, 6]] [[1, 2, 3], [4, 5, 6]]

Explication

Contrairement à x.copy() qui fait une copie superficielle et qui aurait donc aussi changé x en [[1, 2, 3], [4, 5, 6, 7]], deepcopy fait bien une copie "profonde" et ne modifie pas la sous-liste dans x !