A ma connaissance, pour des objets composés (listes, dictionnaires, instances de classe), il faut distinguer 3 cas:
1- dest=source ne crée pas de copie, mais crée simplement un nouvel accès au même objet "source". Toute modif de dest sera appliquée aussi à source.
2- dest=copy.copy(source), ainsi que toutes les autres méthodes vues plus haut sauf deepcopy, fait une copie dite "superficielle", c'est à dire que la structure de l'objet est recopiée, mais que cette structure pointe toujours sur les mêmes éléments de base (nombre, chaînes, ...). Cela suffit en général: la modif de dest n'est pas répercutée sur source.
3- dest=copy.deepcopy(source) fait une copie dite "profonde", c'est à dire que tout est copié, y compris les éléments de base pointés par la structure de l'objet. C'est rarement nécessaire, et cela peut avoir des inconvénients en cas d'objets complexes avec boucles.
cf une info sur le web:
http://quentel.pierre.free.fr/python...dule-copy.html
Tyrtamos
[EDIT] je viens cependant de lire dans un de mes livres Python que, pour les dictionnaires, la fonction dico.items() fournit une copie profonde des éléments renvoyés.
Partager