Copier des listes imbriquées : préserver l'indépendance
Lorsque vous travaillez avec des listes imbriquées, il est souvent souhaitable de créer une copie indépendante de la liste, en vous assurant que les modifications apportées à une liste n’affectent pas l’autre. Ce n'est pas aussi simple qu'avec les listes unidimensionnelles, où une copie superficielle utilisant [:] est suffisante.
Pour les listes bidimensionnelles, l'approche naïve consistant à utiliser [:] aboutit à une copie superficielle, où les listes internes sont toujours référencées à la fois par l'original et par la copie. En conséquence, les modifications apportées à la copie sont reflétées dans l'original.
Pour atteindre une véritable indépendance, une copie approfondie est requise. Cela implique la création d'un nouvel objet pour chaque élément de la liste, y compris les listes imbriquées. La fonction copy.deepcopy() fournit un moyen simple de réaliser des copies complètes, rompant efficacement le lien de référence entre l'original et la copie.
En utilisant copy.deepcopy() comme suit, nous pouvons créer une copie indépendante de la liste bidimensionnelle a :
import copy b = copy.deepcopy(a)
Maintenant, toute modification apportée à b n'affectera pas a, et vice versa.
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!