Método de copia de la lista de Python()

Los métodos Python List Copy() devuelven una copia superficial de una lista (devuelve una nueva lista sin modificar las listas originales).

En ocasiones, existe la necesidad de reutilizar cualquier objeto, por lo que los métodos de copia son siempre de gran utilidad. Python en su lenguaje ofrece varias formas de lograr esto. Este artículo en particular tiene como objetivo demostrar el método de copia presente en la lista. Dado que la lista se usa ampliamente, su copia también es necesaria.

Python list.copy() Sintaxis:

Sintaxis : lista.copia()

Parámetros: el método copy() no toma ningún parámetro

Devoluciones: devuelve una copia superficial de una lista. Una copia superficial significa que cualquier modificación en la nueva lista no se reflejará en la lista original. 
 

Ejemplo 1: demostración del funcionamiento de list.copy() 

Aquí crearemos una lista y luego crearemos una copia superficial usando list.copy() en Python.

Python3

# Python 3 code to demonstrate
# working of list.copy()
 
# Initializing list
lis1 = [ 1, 2, 3, 4 ]
 
# Using copy() to create a shallow copy
lis2 = lis1.copy()
 
# Printing new list
print ("The new list created is : " + str(lis2))
 
# Adding new element to new list
lis2.append(5)
 
# Printing lists after adding new element
# No change in old list
print ("The new list after adding new element : \
" + str(lis2))
print ("The old list after adding new element to new list  : \
" + str(lis1))

Producción: 

The new list created is : [1, 2, 3, 4]
The new list after adding new element : [1, 2, 3, 4, 5]
The old list after adding new element to new list  : [1, 2, 3, 4]

Nota: Una copia superficial significa que si modificamos cualquiera de los elementos de la lista anidada, los cambios se reflejan en la lista ya que apuntan a la misma referencia. Mientras que en deep copy, cuando añadimos un elemento en cualquiera de las listas, solo se modifica esa lista. Cuando usamos el operador “=” (asignación), la nueva lista se refiere al mismo objeto, por lo que cualquier cambio (agregar, eliminar, cambio de valor) en una lista se refleja en ambas. Pero cuando usamos el método list.copy() , los cambios realizados en una lista o no se reflejan en otra excepto en los elementos anidados (como una lista dentro de una lista). Aquí deberíamos usar copy.deepcopy() del módulo de copia para evitar este problema.

Consulte este artículo Copia profunda frente a copia superficial

  • Técnicas de deep copy: 
    • Usando copy.deepcopy()
  • Técnicas para copiar superficialmente: 
    • Usando copiar.copiar()
    • Usando list.copy()
    • usando rebanar

Ejemplo 2: Demostración de técnicas de copia superficial y profunda  

Aquí crearemos una lista y luego crearemos una copia superficial usando list.copy() y Deep Copy usando deepcopy() en Python.

Python3

# Python 3 code to demonstrate
# techniques of deep and shallow copy
import copy
 
# Initializing list
list1 = [ 1, [2, 3] , 4 ]
 
# all changes are reflected
list2 = list1
 
# shallow copy - changes to
# nested list is reflected,
# same as copy.copy(), slicing
 
list3 = list1.copy()
 
# deep copy - no change is reflected
list4 = copy.deepcopy(list1)
 
list1.append(5)
list1[1][1] = 999
 
print("list 1 after modification:\n", list1)
print("list 2 after modification:\n", list2)
print("list 3 after modification:\n", list3)
print("list 4 after modification:\n", list4)

Producción:  

list 1 after modification:
 [1, [2, 999], 4, 5]
list 2 after modification:
 [1, [2, 999], 4, 5]
list 3 after modification:
 [1, [2, 999], 4]
list 4 after modification:
 [1, [2, 3], 4]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *