Python | Clonar o copiar una lista

En este artículo, veremos varias formas de copiar listas en Python . Estas diversas formas de copiar la lista toman diferentes tiempos de ejecución, por lo que podemos compararlos en función del tiempo. 

  • Usando la técnica del corte 
  • Usando el método extender() 
  • Copiar lista usando =(operador de asignación)
  • Usando el método de copia superficial 
  • Uso de la comprensión de listas 
  • Usando el método agregar() 
  • Usando el método copy() 
  • Usando el método de Deep Copy 

1. Usando la técnica de corte 

Esta es la forma más fácil y rápida de clonar una lista. Este método se considera cuando queremos modificar una lista y además conservar una copia del original. En esto, hacemos una copia de la lista en sí, junto con la referencia. Este proceso también se llama clonación. Esta técnica tarda unos 0,039 segundos y es la técnica más rápida. 

Para obtener más información, puede leer este artículo – Técnica de corte de lista

Ejemplo:

Python3

# Python program to copy or clone a list
# Using the Slice Operator
def Cloning(li1):
    li_copy = li1[:]
    return li_copy
 
 
# Driver Code
li1 = [4, 8, 2, 10, 15, 18]
li2 = Cloning(li1)
print("Original List:", li1)
print("After Cloning:", li2)

Producción: 

Original List: [4, 8, 2, 10, 15, 18] 
After Cloning: [4, 8, 2, 10, 15, 18] 

2. Usando el método extend() 

Las listas se pueden copiar en una nueva lista usando la función extend(). Esto agrega cada elemento del objeto iterable (por ejemplo, otra lista) al final de la nueva lista. Esto tarda alrededor de 0,053 segundos en completarse. 

Para obtener más información, puede leer este artículo: extender()

Ejemplo:

Python3

# Python code to clone or copy a list
# Using the in-built function extend()
def Cloning(li1):
    li_copy = []
    li_copy.extend(li1)
    return li_copy
   
# Driver Code
li1 = [4, 8, 2, 10, 15, 18]
li2 = Cloning(li1)
print("Original List:", li1)
print("After Cloning:", li2)

Producción: 

Original List: [4, 8, 2, 10, 15, 18]
After Cloning: [4, 8, 2, 10, 15, 18]

3. Copia de la lista usando = (operador de asignación)

Este es el método más simple de clonar una lista usando operadores =. Este operador asigna la lista anterior a la lista nueva mediante los operadores = de Python. 

Aquí crearemos una lista y luego copiaremos la lista anterior en la lista nueva usando operadores de asignación.

Nota: hay un problema con este método si modifica en la lista nueva, luego la lista anterior también se modifica debido a que la lista nueva hace referencia 

Ejemplo:

Python3

# Python code to clone or copy a list
# Using the List copy using =
def Cloning(li1):
    li_copy = li1
    return li_copy
   
# Driver Code
li1 = [4, 8, 2, 10, 15, 18]
li2 = Cloning(li1)
print("Original List:", li1)
print("After Cloning:", li2)

Producción: 

Original List: [4, 8, 2, 10, 15, 18]
After Cloning: [4, 8, 2, 10, 15, 18]

4. Usando el método de copia superficial 

Este método de copiar usando copy. La copia superficial está bien explicada en el artículo Copia superficial . Esto tarda alrededor de 0,186 segundos en completarse. 

Ejemplo:

Python3

# importing copy module
import copy
   
# initializing list 1
li1 = [1, 2, [3,5], 4]
   
# using copy for shallow copy 
li2 = copy.copy(li1)
 
print(li2)

Producción:

[1, 2, [3, 5], 4]

5. Usar la comprensión de listas 

El método de comprensión de listas se puede utilizar para copiar todos los elementos individualmente de una lista a otra. Esto tarda alrededor de 0,217 segundos en completarse. 

Ejemplo:

Python3

# Python code to clone or copy a list
# Using list comprehension
def Cloning(li1):
    li_copy = [i for i in li1]
    return li_copy
   
# Driver Code
li1 = [4, 8, 2, 10, 15, 18]
li2 = Cloning(li1)
print("Original List:", li1)
print("After Cloning:", li2)

Producción: 

Original List: [4, 8, 2, 10, 15, 18]
After Cloning: [4, 8, 2, 10, 15, 18]

6. Usando el método append() 

Esto se puede usar para agregar y agregar elementos a la lista o copiarlos en una nueva lista. Se utiliza para añadir elementos a la última posición de la lista. Esto tarda alrededor de 0,325 segundos en completarse y es el método de clonación más lento. 

Ejemplo:

Python3

# Python code to clone or copy a list
# Using append()
def Cloning(li1):
    li_copy =[]
    for item in li1: li_copy.append(item)
    return li_copy
   
# Driver Code
li1 = [4, 8, 2, 10, 15, 18]
li2 = Cloning(li1)
print("Original List:", li1)
print("After Cloning:", li2)

Producción: 

Original List: [4, 8, 2, 10, 15, 18]
After Cloning: [4, 8, 2, 10, 15, 18]

7. Usando el método copy() 

Python List copy() es un método de copia incorporado que se utiliza para copiar todos los elementos de una lista a otra. Esto tarda alrededor de 1,488 segundos en completarse.

Ejemplo: 

Python3

# Python code to clone or copy a list
# Using bilt-in method copy()
def Cloning(li1):
    li_copy =[]
    li_copy = li1.copy()
    return li_copy
   
# Driver Code
li1 = [4, 8, 2, 10, 15, 18]
li2 = Cloning(li1)
print("Original List:", li1)
print("After Cloning:", li2)

Producción: 

Original List: [4, 8, 2, 10, 15, 18]
After Cloning: [4, 8, 2, 10, 15, 18]

8. Usando el método de Deep Copy 

Este método de copia está bien explicado en el artículo Deep Copy . Esto tarda alrededor de 10,59 segundos en completarse y es el método de clonación más lento. 

Ejemplo:

Python3

# importing copy module
import copy
   
# initializing list 1
li1 = [1, 2, [3,5], 4]
 
# using deepcopy for deepcopy 
li3 = copy.deepcopy(li1)
print(li3)

Producción:

[1, 2, [3, 5], 4]

Publicación traducida automáticamente

Artículo escrito por Chinmoy Lenka 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 *