Maison  >  Article  >  développement back-end  >  Comment créer des copies véritablement indépendantes de listes imbriquées en Python ?

Comment créer des copies véritablement indépendantes de listes imbriquées en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-24 01:53:12373parcourir

How to Create Truly Independent Copies of Nested Lists in Python?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn