Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Cópia de lista

No vídeo "2 - Trabalhando com conjuntos e sets", quando o Guilherme ainda está dando exemplos de listas, temos a definição de duas listas:

lista01 = [...]
lista02 = [...]

Nesse momento, ele quer criar uma terceira lista que é a união das duas (ainda sem considerar "sets"):

lista03 = lista01.copy()
lista03.extend(lista02)

Não entendo porque é necessário usar o método ".copy()" da lista para criar uma cópia. Qual a diferença em somente criar uma nova variável, como:

lista_nova = lista01
lista_nova.extend(lista02)

Obrigado!

2 respostas
solução!

Olá, Diego. Tudo bom?

essa linha

lista_nova = lista01

não é uma cópia. É apenas uma referência. Isso significa que quando você alterar algo na nova_lista, também será alterado na lista01. Conforme na imagem abaixo:

Foto 1

Você pode ver mais sobre .copy() na documentação do Python : https://docs.python.org/3/library/copy.html

Espero ter ajudado.

Ok, justo. Foi o que eu sempre tinha pensado.

Que fazendo:

lista_nova = lista01

seria uma "cópia de referência/ponteiro", mas me confundi porque tenho quase certeza de que quando o Guilherme apresentou o

.copy()

ele mostrou a documentação que dizia "shallow copy" e falou que era apenas uma cópia de referência.

Mas então na verdade é uma cópia de valores.

Obrigado Rodrigo.