Módulo 10 - Listas em Python
Criando e acessando itens: o índice começa em zero
10 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026
O que você vai aprender
- Acessar qualquer item de uma lista pelo índice entre colchetes.
- Internalizar que a primeira posição é a 0, não a 1.
- Alterar o valor de um item existente e usar índices negativos.
- Ler e entender o IndexError quando o índice passa do fim.
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: Criando e acessando itens: o índice começa em zero.
Os objetivos desta aula. Acessar qualquer item de uma lista pelo índice entre colchetes. Internalizar que a primeira posição é a 0, não a 1. Alterar o valor de um item existente e usar índices negativos. Ler e entender o IndexError quando o índice passa do fim.
Veja o essencial, parte por parte.
A pegadinha número 1: conta-se do zero. Cada item da lista tem um número de posição chamado índice, e a contagem COMEÇA EM ZERO.
Alterando itens e contando de trás para frente. O índice não serve só para ler: serve para trocar.
Quando o índice passa do fim: IndexError. E se você pedir o índice 3 de uma lista que só tem 3 itens?
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
A pegadinha número 1: conta-se do zero
Para pegar um item específico da lista, escreva o nome dela seguido da posição entre colchetes: frutas[1]. Agora, a informação mais importante do módulo, talvez do curso inteiro nesta fase: o Python conta as posições a partir do ZERO. O primeiro item mora no índice 0, o segundo no índice 1, o terceiro no índice 2. Então frutas[1] não pega a primeira fruta; pega a segunda. Praticamente todo iniciante tropeça nisso na primeira semana, e a maioria tropeça de novo na segunda.
frutas = ["maçã", "banana", "laranja"]
print(frutas[0]) # Saída: maçã (o PRIMEIRO item)
print(frutas[1]) # Saída: banana (o segundo)
print(frutas[2]) # Saída: laranja (o terceiro e último)Três itens, índices 0, 1 e 2. O maior índice é sempre o tamanho da lista menos um.
Por que zero? A resposta curta: herança das linguagens antigas, em que o índice indicava a distância até o início da lista, e o primeiro item está a distância zero. Você não precisa decorar a justificativa, precisa gravar a consequência: numa lista de 3 itens, os índices válidos são 0, 1 e 2. O índice 3 não existe. Essa continha, tamanho menos um, evita a maior parte dos erros desta aula.
Alterando itens e contando de trás para frente
O índice não serve só para ler: serve para trocar. Escreva a posição do lado esquerdo do sinal de igual e atribua um valor novo, como se fosse uma variável comum. O item antigo sai, o novo entra na mesma posição, e o resto da lista nem percebe. É assim que se corrige uma nota digitada errada ou se atualiza o status de uma tarefa.
notas = [7.5, 8.0, 6.5]
print(notas) # Saída: [7.5, 8.0, 6.5]
notas[1] = 9.0 # troca o SEGUNDO item (índice 1)
print(notas) # Saída: [7.5, 9.0, 6.5]Alterar é atribuir por índice: notas[1] = 9.0 substitui o valor da posição 1.
E tem um truque elegante que o Python oferece: índices negativos, que contam do fim para o começo. O índice -1 é sempre o último item, o -2 é o penúltimo, e assim por diante. Isso resolve com uma beleza rara o problema de pegar o final da lista sem saber o tamanho dela: em vez de escrever frutas[len(frutas) - 1], que funciona mas é feio, escreva frutas[-1].
fila = ["Ana", "Bruno", "Carla", "Diego"]
print(fila[-1]) # Saída: Diego (o último)
print(fila[-2]) # Saída: Carla (o penúltimo)
print(fila[0]) # Saída: Ana (o primeiro, como sempre)Índices negativos contam do fim: -1 é o último, -2 o penúltimo. O primeiro continua sendo o 0.
| Item | Índice positivo | Índice negativo |
|---|---|---|
| "Ana" | 0 | -4 |
| "Bruno" | 1 | -3 |
| "Carla" | 2 | -2 |
| "Diego" | 3 | -1 |
A mesma lista vista pelos dois lados. Todo item tem dois endereços: um contando do início, outro do fim.
Quando o índice passa do fim: IndexError
E se você pedir o índice 3 de uma lista que só tem 3 itens? O Python não inventa um valor nem devolve vazio em silêncio: ele para o programa e levanta um IndexError, com a mensagem list index out of range, índice de lista fora do alcance. Como você aprendeu no módulo 1, isso é um relatório a seu favor: ele aponta a linha exata em que o programa pediu uma posição que não existe.
frutas = ["maçã", "banana", "laranja"]
print(frutas[3])
# Traceback (most recent call last):
# File "programa.py", line 2, in <module>
# IndexError: list index out of rangeLista de 3 itens vai do índice 0 ao 2. Pedir o 3 derruba o programa com IndexError.
Provoque esse erro de propósito no Playground agora: crie uma lista de 3 itens e peça o índice 10. Ler o IndexError em ambiente seguro tira o susto de quando ele aparecer num programa seu de verdade. E ele vai aparecer, quase sempre pelo mesmo motivo: alguém contou a partir do 1, ou esqueceu que o último índice é o tamanho menos um. No módulo 14 você vai aprender a tratar esse erro com try e except; por enquanto, o remédio é conferir o índice.
Recapitulando o essencial: colchetes com número leem um item, contagem começa no zero, atribuição por índice troca o valor, negativos contam do fim e índice inexistente gera IndexError. Com ler e trocar dominados, falta a lista crescer. É a próxima aula, com o método que você mais vai digitar na sua vida Python: o append.
Teste rápido
Na lista cores = ["azul", "verde", "vermelho"], o que imprime print(cores[1])?
Perguntas frequentes
- Por que o Python começa a contar do zero e não do um?
- É herança do design das linguagens mais antigas, em que o índice representava a distância do item até o início da sequência, e o primeiro item está a distância zero. Quase todas as linguagens modernas seguem essa convenção, então o hábito que você criar aqui vale para o resto da carreira.
- O índice negativo também dá IndexError?
- Dá, se passar do começo. Numa lista de 3 itens, os negativos válidos são -1, -2 e -3; pedir o -4 gera o mesmo IndexError: list index out of range. A regra é espelhada: para os dois lados, só existem tantas posições quantos itens.
- Como pego o último item se eu não sei o tamanho da lista?
- Com o índice -1, que é sempre o último item, não importa se a lista tem 3 ou 3 mil elementos. É a forma preferida em Python, mais limpa que a alternativa lista[len(lista) - 1], que faz a mesma coisa com mais esforço.
- Posso usar uma variável como índice?
- Pode, e é comum: posicao = 2 seguido de frutas[posicao] funciona perfeitamente. O que estiver entre os colchetes só precisa resultar num número inteiro válido. Isso vai ser útil quando o usuário do seu programa escolher qual item ver ou remover.
- Alterar um item pelo índice muda o tamanho da lista?
- Não. A atribuição notas[1] = 9.0 substitui o valor daquela posição; a lista continua com a mesma quantidade de itens. Quem muda o tamanho são as operações de adicionar (append, insert) e remover (remove, pop, del), assunto das próximas aulas.
- E se eu usar um número decimal como índice, tipo frutas[1.0]?
- O Python recusa com um TypeError: índices de lista precisam ser inteiros. Mesmo 1.0, que matematicamente vale 1, não serve. Se o número veio de um input ou de uma conta, converta com int() antes de usar como índice.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.