Copiar profundamente uma lista em Python
-
Use a função
copy.deepcopy()
para copiar profundamente uma lista em Python - Use a compreensão de lista para copiar profundamente uma lista em Python
Podemos criar cópias superficiais e profundas em Python. Uma cópia profunda de uma lista é criar uma nova lista e então inserir recursivamente nela as cópias dos elementos da lista original. Refere-se à clonagem de uma lista e quaisquer alterações feitas na lista original não afetam a lista clonada.
Use a função copy.deepcopy()
para copiar profundamente uma lista em Python
A função deepcopy()
do módulo copy
é usada para criar uma cópia profunda da lista especificada. Se alterarmos esta cópia, o conteúdo da lista original permanece o mesmo e não é alterado.
Por exemplo,
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))
Produção:
List A is : [[10, 10], [50, 'Hi'], ['World', 5, 80]]
List B is : [[10, 60], [50, 'Hi'], ['Hello', 5, 80]]
A lista B
não é modificada depois que um novo valor é atribuído na lista A
porque a lista B
é uma cópia profunda da lista A
. A lista A
e a lista B
são independentes uma da outra.
Use a compreensão de lista para copiar profundamente uma lista em Python
A compreensão de listas em Python é usada para criar novas listas a partir de outros iteráveis, como listas, tuplas, strings e muito mais. A compreensão da lista torna o código simples e eficiente.
Faremos essencialmente o que a função deepcopy()
faz e criaremos recursivamente uma nova cópia da lista fornecida neste método.
Por exemplo,
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))
Produção:
List A is : ['Hi', 4, 6, 8, 10]
List B is : [2, 4, 6, 8, 10]
Também podemos executar esse método sem compreensão de lista e usar o loop for de maneira tradicional. No entanto, leva mais linhas de código e mais tempo.