Maison > développement back-end > Tutoriel Python > Comment copier des objets en Python ?

Comment copier des objets en Python ?

WBOY
Libérer: 2023-08-25 20:33:15
avant
1418 Les gens l'ont consulté

Comment copier des objets en Python ?

En Python, si vous souhaitez copier un objet, l'opérateur d'affectation ne servira à rien. Il crée une liaison entre la cible et l'objet, c'est-à-dire qu'il ne crée jamais de nouvel objet. Il crée simplement une nouvelle variable qui partage la référence d'objet d'origine. Pour résoudre ce problème, le module de réplication est fourni. Ce module comporte des opérations communes de copie superficielle et de copie profonde.

Copie superficielle

La copie superficielle construit un nouvel objet composite puis insère la référence dans l'objet d'origine. Il copie des objets en utilisant

copy.copy(x)
Return a shallow copy of x.
Copier après la connexion

Copie approfondie

La copie profonde construit un nouvel objet composite, puis y insère de manière récursive des copies des objets de l'objet d'origine. Il copie les objets en utilisant les méthodes suivantes

copy.deepcopy(x[, memo])

Return a deep copy of x. Here, memo is a dictionary of objects already copied during the current copying pass;
Copier après la connexion

Les problèmes suivants peuvent survenir lors de l'utilisation des opérations de copie complète -

  • La récursion peut conduire à des boucles récursives.

  • Étant donné que la copie profonde copie tout, il est possible d'en copier trop, comme les données que vous souhaitez partager entre les répliques.

Cependant, la méthode deepcopy() évite ces problèmes. Voyons comment −

  • Conserve un dictionnaire mémo des objets copiés pendant le processus de copie en cours

  • Autoriser les classes définies par l'utilisateur à remplacer les opérations de copie ou les ensembles de composants copiés.

Installez et importez le module de copie

Pour installer le module de copie, utilisez pip −

pip install copy
Copier après la connexion

Utilisez le module de copie après l'installation −

import copy
Copier après la connexion

Copiez des objets en utilisant une copie superficielle

Exemple

Nous utiliserons une copie superficielle pour copier l'objet. Il crée un nouvel objet pour stocker une référence à l'élément d'origine. Voyons un exemple

import copy

# Create a List
myList = [[5, 10], [15, 20]]

# Display the list
print("List = ", myList)

# Shallow Copy
myList2 = copy.copy(myList)

# Display the copy of the List
print("New copy of the list =", myList2)
Copier après la connexion

Sortie

List =  [[5, 10], [15, 20]]
New copy of the list = [[5, 10], [15, 20]]
Copier après la connexion

Dans l'exemple ci-dessus, nous avons réalisé une copie superficielle de la liste en utilisant la méthode copy().

Copiez des objets à l'aide de la copie approfondie

Exemple

Nous utiliserons la méthode deepcopy() pour copier en profondeur un objet. Une copie complète crée également un nouvel objet. Voyons un exemple

import copy

# Create a List
myList = [[5, 10], [15, 20]]

# Display the list
print("List = ", myList)

# Deep Copy
myList2 = copy.deepcopy(myList)

# Display the copy of the List
print("New copy of the list =", myList2)
Copier après la connexion

Sortie

List = [[5, 10], [15, 20]]
New copy of the list = [[5, 10], [15, 20]]
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal