Módulo 10 - Listas em Python
Adicionando itens: append no fim, insert na posição
10 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026
O que você vai aprender
- Acrescentar itens no fim de uma lista com o método append().
- Encaixar um item numa posição específica com insert().
- Escolher entre append e insert conforme a ordem importar ou não.
- Aplicar o padrão fundamental: começar com lista vazia e crescer dentro de um loop.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Adicionando itens: append no fim, insert na posição.
Os objetivos desta aula. Acrescentar itens no fim de uma lista com o método append(). Encaixar um item numa posição específica com insert(). Escolher entre append e insert conforme a ordem importar ou não. Aplicar o padrão fundamental: começar com lista vazia e crescer dentro de um loop.
Veja o essencial, parte por parte.
Crescendo pelo fim: append(). lista.append(item) acrescenta o item no FIM da lista; é o método que você mais vai usar.
insert(): quando a posição importa. O append sempre joga o item no fim, e na maioria dos casos é isso mesmo que você quer.
O padrão fundamental: lista vazia + loop. Escreva um programa que pede 3 comidas favoritas e monta uma lista com elas.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
Crescendo pelo fim: append()
Até aqui, as listas das aulas já nasciam prontas, com os itens escritos no código. A vida real é diferente: o carrinho de compras começa vazio e ganha produtos conforme o cliente escolhe. Para isso existe o append, acrescentar em inglês. A escrita é nova para você: o nome da lista, um ponto e o método, como frutas.append("uva"). Esse ponto diz ao Python: chame a operação append DESTA lista. Métodos assim já apareceram no módulo de textos, com o upper() e o strip(); a lista tem os dela.
frutas = ["maçã", "banana"]
frutas.append("laranja")
print(frutas)
# Saída: ['maçã', 'banana', 'laranja']
frutas.append("uva")
print(frutas)
# Saída: ['maçã', 'banana', 'laranja', 'uva']Cada append acrescenta um item no fim. A lista cresceu de 2 para 4 itens sem tocar nos anteriores.
Dois detalhes que economizam sustos. Primeiro: append recebe um item por vez; frutas.append("uva", "pera") dá erro. Quer adicionar vários? Chame o método várias vezes ou use um loop, como você vai ver já já. Segundo: append altera a lista original diretamente, sem precisar de atribuição. Escrever frutas = frutas.append("uva") é um erro clássico que DESTRÓI a lista, porque append não devolve nada e a variável fica valendo None. A forma certa é a chamada seca: frutas.append("uva").
insert(): quando a posição importa
O append sempre joga o item no fim, e na maioria dos casos é isso mesmo que você quer. Mas às vezes a posição importa: numa fila de atendimento, o cliente prioritário entra na FRENTE. Para esses casos existe o insert, que recebe dois valores: a posição de destino e o item. fila.insert(0, "Dona Maria") coloca Dona Maria no índice 0, o início, e todo mundo desliza uma casa para a direita. Ninguém é apagado; a lista só cresce com o novo item no lugar pedido.
fila = ["Bruno", "Carla", "Diego"]
fila.insert(0, "Dona Maria") # prioridade: entra no INÍCIO
print(fila)
# Saída: ['Dona Maria', 'Bruno', 'Carla', 'Diego']
fila.insert(2, "Eduardo") # entra na posição 2, no meio
print(fila)
# Saída: ['Dona Maria', 'Bruno', 'Eduardo', 'Carla', 'Diego']insert(posicao, item): o item entra no índice pedido e os seguintes deslizam para a direita.
append(item)
- Adiciona sempre no FIM da lista
- Recebe um argumento: o item
- Nenhum item muda de posição
- É o padrão: use quando a ordem de chegada basta
insert(posicao, item)
- Adiciona na posição que você escolher
- Recebe dois argumentos: posição e item
- Os itens da posição em diante deslizam uma casa
- Use quando o lugar importa: início da fila, meio da lista
Uma curiosidade útil: se a posição pedida no insert for maior que o tamanho da lista, o Python não reclama com IndexError; ele simplesmente coloca o item no fim, como um append. E insert(0, item) é o jeito canônico de adicionar no início. Regra prática para escolher: na dúvida, append. O insert é a exceção para quando a posição carrega significado.
O padrão fundamental: lista vazia + loop
Agora a peça que junta este módulo com os dois anteriores e forma o padrão de construção mais usado do Python: comece com uma lista vazia e dê append dentro de um loop. É assim que um programa coleta respostas do usuário, junta resultados de um cálculo ou filtra dados. Veja o exemplo: um programa que pede 3 nomes de convidados e monta a lista da festa, juntando o input do módulo 5, o for do módulo 9 e o append de agora.
convidados = [] # 1. a lista nasce vazia
for i in range(3): # 2. repete 3 vezes
nome = input("Nome do convidado: ")
convidados.append(nome) # 3. cada resposta entra no fim
print(convidados)
print(f"Total: {len(convidados)} convidados")
# Digitando Ana, Bruno e Carla, a saída é:
# ['Ana', 'Bruno', 'Carla']
# Total: 3 convidadosO padrão em três passos: lista vazia, loop, append. Grave esse desenho; ele volta no curso inteiro.
Repare no que esse padrão desbloqueia: o programa não sabe de antemão quais nomes virão, nem precisa. A lista vazia é um recipiente, o loop é a esteira e o append vai enchendo. Troque o range(3) por um while com opção de sair e o programa aceita quantos convidados o usuário quiser; é exatamente essa a mecânica da lista de compras da prática, na aula 7. Antes dela, porém, falta a operação inversa: tirar itens da lista. É a próxima aula.
Teste rápido
O que faz o padrão lista vazia + loop + append, usado no exemplo dos convidados?
Perguntas frequentes
- Qual a diferença entre método e função? append é o quê?
- Função é chamada sozinha, como len(lista) e print(). Método é uma função que pertence a um valor e é chamada com ponto, como lista.append(item). Na prática: len() pergunta algo DE FORA da lista; append age DE DENTRO, alterando a própria lista.
- Por que lista = lista.append(item) apaga a minha lista?
- Porque append altera a lista no lugar e devolve None, o valor que representa nada em Python. A atribuição então substitui a sua lista por None. A forma correta é chamar lista.append(item) sozinho, sem sinal de igual.
- Como adiciono vários itens de uma vez?
- O jeito que o curso já ensinou: um loop com append. O Python também tem o método extend(), que emenda uma lista na outra (a.extend([1, 2, 3])), e o operador +, que junta duas listas numa nova. São atalhos que você vai reconhecer por aí; o append com loop resolve tudo neste nível.
- insert() com posição gigante dá IndexError?
- Não. Diferente do acesso por índice, o insert é tolerante: se a posição passar do fim, ele coloca o item no final, agindo como um append. E com posição negativa, ele conta do fim, como os índices negativos da aula anterior.
- append deixa o programa lento em listas grandes?
- Não: acrescentar no fim é uma das operações mais rápidas da lista, mesmo com milhões de itens. O insert no início é que trabalha mais, porque precisa deslocar todos os itens. Para este curso, a diferença é invisível; vale como cultura para o futuro.
- Posso dar append de uma lista dentro de outra?
- Pode: notas.append([10, 9]) coloca a lista [10, 9] como UM item da lista notas, criando uma lista aninhada. Às vezes é o que se quer, mas em geral o iniciante queria os itens soltos, e para isso o extend() é o caminho. Fique atento à diferença.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.