Com base nas linguagens de programação Python, julgue o pr...
Com base nas linguagens de programação Python, julgue o próximo item.
Considere o seguinte código em Python:
lista = [1, 2, 3, 4, 5]
lista1 = lista
lista1[0] = 99
Ao final da execução do código, o conteúdo da variável lista será:
[99, 2, 3, 4, 5]
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C – certo
Tema central da questão: O foco está no comportamento de listas em Python, especialmente na cópia de listas e manipulação de seus elementos. Saber como as variáveis se relacionam com objetos mutáveis é fundamental para resolver questões dessa natureza em provas.
Resumo teórico: Em Python, listas são objetos mutáveis. Quando você faz lista1 = lista, não está criando uma nova lista, mas sim uma nova referência para o mesmo objeto na memória. Assim, qualquer alteração feita em lista1 afetará também lista, pois ambas apontam para a mesma lista original.
Fonte: Documentação oficial Python – Mais sobre listas
Justificativa da alternativa correta:
O código apresentado faz:
lista = [1, 2, 3, 4, 5] lista1 = lista lista1[0] = 99
Como lista1 e lista são, na verdade, o mesmo objeto, modificar lista1[0] também altera lista[0]. Portanto, após a execução, ambas terão o conteúdo [99, 2, 3, 4, 5].
Estratégias de interpretação: Fique atento a pegadinhas que envolvem cópia de listas. Se a intenção fosse criar uma cópia independente, deveria ser usado lista1 = lista.copy() ou lista1 = lista[:]. Do contrário, será sempre uma referência ao mesmo objeto.
Dica para concursos: Sempre que vir manipulação de listas e atribuição direta, lembre-se: atribuição não cria cópia, apenas referência!
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
C
lista = [1, 2, 3, 4, 5]
lista1 = lista
lista1[0] = 99
Ao fazer lista1 = lista, não se cria uma nova lista, mas sim uma referência à mesma estrutura na memória. Isso significa que lista1 e lista apontam para o mesmo objeto.
Em seguida, lista1[0] = 99 altera diretamente o primeiro elemento da lista original — porque ambas variáveis compartilham o mesmo espaço.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo