Com base nas linguagens de programação Python, julgue o pr...

Próximas questões
Com base no mesmo assunto
Q3451595 Programação

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]  

Alternativas

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