Listas e mutabilidade
Objetivo da aula
Armazenar uma sequência mutável de valores.
Regra desta aula: vamos assumir que você nunca viu este assunto antes. Nenhum termo importante será usado sem explicação e todo exemplo deve ser entendido linha por linha, não apenas copiado.
Começando do zero
Lista armazena uma sequência ordenada de valores e é mutável: podemos adicionar, substituir e remover elementos. Isso a torna útil para coleções que mudam durante a execução, como tarefas, notas ou produtos.
Uma imagem mental para entender
Imagine uma prateleira numerada com caixas. Você pode olhar a caixa da posição 0, trocar seu conteúdo, acrescentar uma nova caixa no fim ou remover uma. Uma lista é uma coleção ordenada com operações parecidas.
Conceitos essenciais, sem pular etapas
Criação
Listas usam colchetes: ["Ana", "Bruno"]. Podem conter valores de tipos diferentes, embora coleções homogêneas sejam frequentemente mais fáceis de raciocinar.
Índice
Assim como strings, listas começam no índice 0.
append()
Adiciona um elemento ao final da lista existente.
Alteração por índice
lista[0] = novo_valor modifica o elemento naquela posição.
Remoção
remove(valor) remove a primeira ocorrência correspondente; pop() remove e retorna elemento por posição, com comportamentos específicos.
Mutabilidade
Diferente de strings, a própria lista pode ser alterada. Isso exige atenção quando vários nomes referenciam o mesmo objeto, tema que aprofundaremos em cursos posteriores.
Modelo mental
LISTA → ACESSAR / ADICIONAR / ALTERAR / REMOVER → NOVO ESTADO DA COLEÇÃO
Exemplo 1 — primeiro veja o programa inteiro
tarefas = ["ler", "praticar"]
print(tarefas)
tarefas.append("revisar")
tarefas[0] = "ler teoria"
print(tarefas)
print("Quantidade:", len(tarefas))
Agora vamos ler linha por linha
- A lista começa com dois elementos.
append()acrescenta um terceiro elemento ao mesmo objeto lista.- A atribuição no índice 0 substitui o primeiro item.
len()informa a quantidade atual de elementos.
Saída esperada
['ler', 'praticar']
['ler teoria', 'praticar', 'revisar']
Quantidade: 3
Exemplo 2 — o mesmo conceito em outra situação
numeros = [10, 20, 30]
removido = numeros.pop(1)
print("Removido:", removido)
print("Restante:", numeros)
O índice 1 é o segundo elemento, 20. pop(1) remove esse valor e também o retorna.
Experimento guiado
Não pule esta parte. Programação só começa a fazer sentido quando você prevê um resultado, executa e compara a previsão com o que realmente aconteceu.
- Crie uma lista vazia e adicione três itens com
append(). - Altere o segundo elemento pelo índice.
- Remova um elemento e confira a nova quantidade.
- Tente acessar um índice que não existe e leia a mensagem de
IndexError.
Mini desafio
Crie uma lista de três linguagens, adicione “Python” ao fim, substitua a primeira por “Algoritmos” e mostre a lista final.
Solução comentada
topicos = ["Lógica", "Variáveis", "Laços"]
topicos.append("Python")
topicos[0] = "Algoritmos"
print(topicos)
Depois de executar a solução, altere pelo menos um valor e explique por que o novo resultado mudou. Se você só copiou e não consegue explicar cada linha, refaça o desafio em uma versão menor.
Erros comuns e por que acontecem
- Acessar índice fora dos limites.
- Esquecer que o primeiro elemento é índice 0.
- Usar
remove()para um valor inexistente sem prever o comportamento. - Alterar uma lista compartilhada por referência sem perceber que outro nome observa a mesma mudança.
Cheque se você realmente entendeu
Listas são mutáveis?
Resposta: Sim.
O que append() faz?
Resposta: Acrescenta um elemento ao final da lista.
Qual índice representa o segundo elemento?
Resposta: 1.
Resumo em linguagem simples
Nesta aula, o ponto central foi Listas e mutabilidade. Tente explicar o modelo LISTA → ACESSAR / ADICIONAR / ALTERAR / REMOVER → NOVO ESTADO DA COLEÇÃO sem olhar a tela. Depois, escreva um exemplo próprio menor que os apresentados. Esse exercício de explicação é parte do aprendizado, não um extra.
Conexão com a próxima aula
Na próxima aula, Percorrendo e transformando listas, vamos aproveitar exatamente o que foi construído aqui. Você não precisa memorizar tudo; precisa conseguir reconhecer o conceito e reconstruí-lo com raciocínio e testes.