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.
Em questão similar nessa mesma prova:
tupla = ('a', ['b', 'c', 'd'])
• tupla[0] → 'a'
• tupla[1] → ['b', 'c', 'd']
O comando: tupla[1].append('e') vai reconhecer o segundo grupo de tuplas (e não o segundo termo) e inserir “e” nele, ficando:
tupla[1] → ['b', 'c', 'e']
—
Já nessa questão:
lista = [1, 2, 3, 4, 5]
lista1 = lista
lista1[0] = 99
O comando lista1[0] vai selecionar o primeiro termo da lista e substituir por 99.
—
Em python, podes combinar os índices, o primeiro indicando o grupo de tuplas, e o segundo a posição do termo dentro da tupla:
tupla = ('a', ['b', 'c', 'd'])
tupla[1][0] # 'b'
tupla[1][1] # 'c'
tupla[1][2] # 'd'
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo