Copier la liste en Python

Azaz Farooq 30 janvier 2023
  1. Copier une liste en Python en utilisant la méthode copy()
  2. Copier la liste en Python en utilisant la méthode de tranchage
  3. Copier la liste en Python en utilisant la fonction list()
  4. Copier la liste en Python en utilisant la méthode de compréhension de la liste
  5. Copier la liste en Python en utilisant la méthode copy.copy()
  6. Copie profonde de la liste Python vs copie peu profonde
Copier la liste en Python

Une liste est un type de données flexible disponible en Python et est entourée de crochets [] avec des valeurs séparées par des virgules. Les valeurs de la liste peuvent être des types de données différents. L’indexation de la liste commence à 0, et elle peut être concaténée et découpée. Les valeurs de la liste peuvent être copiées comme une nouvelle valeur de liste en utilisant différentes fonctions intégrées.

Cet article présente différentes méthodes pour copier une liste en Python.

Copier une liste en Python en utilisant la méthode copy()

La façon la plus directe de copier une liste Python est la méthode copy(). On peut trouver un scénario dans lequel on veut faire une copie de la liste. Le signe égal = peut être utilisé pour construire une copie d’une liste. La nouvelle liste sera cependant liée à la liste existante. Cela signifie que la nouvelle liste sera également modifiée si vous mettez à jour la liste originale. La nouvelle liste se réfère à un élément similaire à l’ancienne liste.

Une copie d’une liste existante est générée par la méthode list copy(). La méthode copy() ne prend aucun paramètre.

Prenons un exemple de noms de fruits comme une liste Python. La nouvelle liste copiera tous les noms de fruits qui existent dans la liste précédente. L’exemple de code est le suivant.

fruits_spring = ["carrots", "kiwi", "grapes", "cherry"]
fruits_summer = fruits_spring.copy()
print(fruits_summer)

Production :

['carrots', 'kiwi', 'grapes', 'cherry']

Copier la liste en Python en utilisant la méthode de tranchage

En Python, le découpage est une méthode que nous utilisons pour extraire des objets d’une liste. Nous pouvons récupérer des objets individuels, plusieurs objets ou tous les objets contenus dans une liste en utilisant la méthode de découpage.

Utilisons l’exemple ci-dessus pour illustrer comment nous pouvons copier une liste en utilisant le découpage.

L’exemple de code complet est donné ci-dessous.

fruits_spring = ["carrots", "kiwi", "grapes", "cherry"]
fruits_summer = fruits_spring[:]
print(fruits_summer)

Production :

['carrots', 'kiwi', 'grapes', 'cherry']

Il utilise la forme de clonage, un deux-points entre crochets ([ :]). Ce processus génère une réplique de l’ancienne liste.

Copier la liste en Python en utilisant la fonction list()

Nous pouvons également construire une copie d’une liste en Python en utilisant la fonction list(). La fonction list() prend un paramètre : le ou les objets que vous souhaitez convertir en liste.

Prenons l’exemple de notre stand de fruits pour démontrer cette approche.

fruits_spring = ["carrots", "kiwi", "grapes", "cherry"]
fruits_summer = list(fruits_spring)
print(fruits_summer)

Production :

['carrots', 'kiwi', 'grapes', 'cherry']

Copier la liste en Python en utilisant la méthode de compréhension de la liste

Cette approche utilise la compréhension de listes. Elle passe en revue tous les éléments de liste existants par la boucle for et ajoute les nouveaux éléments de liste.

L’exemple de code complet est donné sous la forme :

fruits_spring = ["carrots", "kiwi", "grapes", "cherry"]
fruits_summer = [i for i in fruits_spring]
print(fruits_summer)

Production :

['carrots', 'kiwi', 'grapes', 'cherry']

Copier la liste en Python en utilisant la méthode copy.copy()

Nous pouvons également utiliser la méthode copy() dans le module copy pour copier une liste Python.

L’exemple de code complet est donné sous la forme :

import copy

fruits_spring = ["carrots", "kiwi", "grapes", "cherry"]

fruits_summer = copy.copy(fruits_spring)

print(fruits_summer)

Production :

['carrots', 'kiwi', 'grapes', 'cherry']

Copie profonde de la liste Python vs copie peu profonde

Toutes les méthodes présentées ci-dessus sont des copies superficielles. La copie superficielle signifie que si l’élément de liste est mutable et que cet élément est modifié dans la liste originale, cette modification sera également reflétée dans la liste copiée. La copie superficielle ne copie que le pointeur ou la référence aux éléments de la liste.

original_list = [["carrots", "apple"], "kiwi", "grapes", "cherry"]

print("The original list is")
print(original_list)

copied_list = original_list.copy()

original_list[0][0] = "banana"
original_list[0][1] = "apple"
original_list[1] = "orange"

print("The original list after modification is")
print(original_list)
print("The copied list is")
print(copied_list)

Production :

The original list is
[['carrots', 'apple'], 'kiwi', 'grapes', 'cherry']
The original list after modification is
[['banana', 'apple'], 'orange', 'grapes', 'cherry']
The copied list is
[['banana', 'apple'], 'kiwi', 'grapes', 'cherry']

Le premier élément de la liste originale est également une liste, qui est modifiable. Lorsque nous en modifions le contenu, l’élément correspondant dans la liste copiée est modifié. En attendant, le deuxième élément de la liste originale est un objet immuable, de sorte que sa modification ne sera pas reflétée dans la liste copiée.

La copie profonde, par opposition à la copie superficielle, copie les objets de la liste originale de manière récursive vers la nouvelle liste. Ainsi, la modification de la liste originale ne sera pas reflétée dans la liste copiée. La méthode deepcopy() du module copy effectue l’opération de copie profonde.

import copy

original_list = [["carrots", "apple"], "kiwi", "grapes", "cherry"]

print("The original list is")
print(original_list)

copied_list = copy.deepcopy(original_list)

original_list[0] = ["banana", "apple"]
original_list[1] = "orange"

print("The original list after modification is")
print(original_list)
print("The copied list is")
print(copied_list)

Production :

The original list is
[['carrots', 'apple'], 'kiwi', 'grapes', 'cherry']
The original list after modification is
[['banana', 'apple'], 'orange', 'grapes', 'cherry']
The copied list is
[['carrots', 'apple'], 'kiwi', 'grapes', 'cherry']

Article connexe - Python List