Copiar
bag.copy() pega os valores que estão em bag nesse instante e os coloca numa lista nova. Agora bag tem tea e depois water, então a lista nova tem tea e depois water. O nome other é essa lista nova. other não é bag.
Antes de qualquer troca, o lugar 0 de other é tea e o lugar 1 é water. O tamanho é 2. A cópia é um retrato desse instante. Depois ela não continua olhando bag.
bag[0] = "soup" põe soup no lugar de tea só dentro de bag. other ainda começa com tea, e water fica no lugar 1 das duas listas. Os dois tamanhos continuam 2. A cópia não recebe essa troca que vem depois.
bag = ["tea", "water"]
other = bag.copy()
bag[0] = "soup"
print(bag)
print(other)
A primeira linha é soup e depois water. A segunda é tea e depois water. soup está só em bag. tea continua na frente de other. print escreve cada lista com os parênteses retos, para as duas listas aparecerem lado a lado.
No sentido contrário é igual. other[1] = "bread" poria bread só em other. O lugar 1 de bag continuaria water. Este programa não dá esse passo. Só muda bag depois da cópia.
bag[:] também monta uma lista nova com os mesmos valores. É o recorte da lista inteira, e o resultado fica separado de bag. other = bag não copia. Os dois nomes são a mesma lista, então uma troca posterior aparece nos dois nomes.
📊 Três jeitos de escrever
| Escrita | O que você obtém |
|---|---|
| bag.copy() | uma lista nova com os valores de agora |
| bag[:] | uma lista nova com esses mesmos valores |
| other = bag | não é uma lista nova; os dois nomes são a mesma lista |
O nome que não guarda tea
Se você escreve other = bag e depois bag[0] = "soup", other também mostra soup. Não havia uma segunda lista para guardar tea. O programa acima usa copy(), então other guarda tea e depois water.
A página seguinte põe valores numa ordem. Esta página não reordena. tea continua na frente de water em other porque essa era a ordem na hora da cópia. soup fica na frente de bag só porque você trocou o lugar 0 depois da cópia.
O que ficou separado
- O que o programa escreve, a primeira linha e depois a segunda?
- Depois do programa, qual é o primeiro valor de other?
- Se você puser bread no lugar 1 de other, o que fica em bag no lugar 1?
- O que other = bag faz que copy() não faz?
tea fica na cópia
A tela é soup, depois water, e depois tea, depois water. other ainda começa com tea. Os dois tamanhos são 2. bread em other deixaria water no lugar 1 de bag. other = bag é uma lista só, então soup apareceria nos dois nomes. bag[:] é outra lista nova com os mesmos valores. A página seguinte ordena valores. Ela não faz esta cópia.
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo