Retour aux quiz
Débutant
Copie profonde avec deepcopy (2)
Combien d'itérations cette boucle effectue-t-elle ?
quiz.py
1
import copy2
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 !