Copier en profondeur une liste en Python
-
Utilisez la fonction
copy.deepcopy()
pour copier en profondeur une liste en Python - Utiliser la compréhension de liste pour copier en profondeur une liste en Python
Nous pouvons créer des copies superficielles et profondes en Python. Une copie profonde d’une liste consiste à créer une nouvelle liste puis à y insérer récursivement les copies des éléments de la liste d’origine. Il fait référence au clonage d’une liste et les modifications apportées à la liste d’origine n’affectent pas la liste clonée.
Utilisez la fonction copy.deepcopy()
pour copier en profondeur une liste en Python
La fonction deepcopy()
du module copy
permet de créer une copie profonde de la liste spécifiée. Si nous modifions cette copie, le contenu de la liste d’origine reste le même et n’est pas modifié.
Par exemple,
import copy
A = [[10, 60], [50, "Hi"], ["Hello", 5, 80]]
B = copy.deepcopy(A)
A[2][0] = "World"
A[0][1] = 10
print("List A is : % s" % (A))
print("List B is : % s" % (B))
Production:
List A is : [[10, 10], [50, 'Hi'], ['World', 5, 80]]
List B is : [[10, 60], [50, 'Hi'], ['Hello', 5, 80]]
La liste B
n’est pas modifiée après l’attribution d’une nouvelle valeur dans la liste A
car la liste B
est une copie complète de la liste A
. La liste A
et la liste B
sont indépendantes l’une de l’autre.
Utiliser la compréhension de liste pour copier en profondeur une liste en Python
La compréhension de liste en Python est utilisée pour créer de nouvelles listes à partir d’autres itérables comme des listes, des tuples, des chaînes, etc. La compréhension de liste rend le code simple et efficace.
Nous allons essentiellement faire ce que fait la fonction deepcopy()
et créer récursivement une nouvelle copie de la liste donnée dans cette méthode.
Par exemple,
A = [2, 4, 6, 8, 10]
B = [i for i in A]
A[0] = "Hi"
print("List A is : % s" % (A))
print("List B is : % s" % (B))
Production:
List A is : ['Hi', 4, 6, 8, 10]
List B is : [2, 4, 6, 8, 10]
Nous pouvons également effectuer cette méthode sans compréhension de liste et utiliser la boucle for de manière traditionnelle. Cependant, cela prend plus de lignes de code et plus de temps.
Article connexe - Python List
- Convertir un dictionnaire en liste en Python
- Supprimer toutes les occurrences d'un élément d'une liste en Python
- Supprimer les doublons de la liste en Python
- Comment obtenir la moyenne d'une liste en Python
- Quelle est la différence entre les méthodes de liste append et extend
- Comment convertir une liste en chaîne de caractères en Python