Copie de listes imbriquées : atteindre l'indépendance dans la manipulation des données
En Python, la copie de listes unidimensionnelles est simple à l'aide de l'opérateur d'affectation de découpage ([ : ]). Cependant, cette méthode ne parvient pas à préserver l’indépendance des données lorsqu’il s’agit de listes imbriquées (2D ou supérieures). Le problème vient des références mémoire interconnectées établies lors de l'affectation initiale.
a = [[1, 2],[3, 4]]
b = a[:]
Les modifications apportées à b se propageront par inadvertance à a car les références, et non les valeurs, sont dupliquées. Pour contourner ce problème, Python propose un utilitaire spécialisé pour la copie profonde : la fonction copy.deepcopy().
import copy
b = copy.deepcopy(a)
Contrairement au slicing méthode, copy.deepcopy() parcourt la structure imbriquée de manière récursive, créant de nouveaux objets entièrement séparés de l'original. Cela garantit que toute modification de b reste isolée, préservant l'intégrité de a.
En employant copy.deepcopy(), vous pouvez répliquer en toute confiance des listes imbriquées, en préservant l'indépendance des données et en permettant une flexibilité inégalée dans la manipulation des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!