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.

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 range

Lista 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.