continuous learning company
Voltar para publicações
Ana Clara
ana clara castro

len() e Índice no Python: Qual É a Diferença?

Se o Python começa os índices em 0, por que len() começa contando em 1? A resposta está na diferença entre quantidade e posição.

02/10/2026 Desenvolvimento
Infográfico len() e índice no Python: len() conta quantos elementos existem, como os 9 caracteres de 'Ana Clara', enquanto o índice indica a posição de cada elemento começando em 0; len(10) gera erro, mas len('10') retorna 2

Se o Python começa os índices em 0, por que o len() começa contando em 1?

Quando a gente começa a estudar Python, essa dúvida aparece rápido. A resposta está na diferença entre duas ideias que parecem iguais, mas servem para coisas diferentes: quantidade e posição.

1. len(): conta quantos existem

A função len() retorna o número total de elementos de uma sequência: caracteres de uma string, itens de uma lista ou tupla, chaves de um dicionário, entre outros.

nome = "Ana Clara"
print(len(nome))

Resultado:

9

São 9 caracteres: A, n, a, o espaço, C, l, a, r, a. O espaço também conta! Como len() responde "quantos existem?", ela conta do jeito que a gente conta no dia a dia: 1, 2, 3...

2. Índice: indica onde está

O índice é a posição de cada elemento dentro da sequência. Em Python, a contagem de posições começa em 0.

nome = "Ana Clara"
print(nome[0])

Resultado:

A

Veja como ficam os índices da mesma string:

Caractere:  A  n  a     C  l  a  r  a
Índice:     0  1  2  3  4  5  6  7  8

Repare que o primeiro caractere está no índice 0 e o último está no índice 8, mesmo a string tendo 9 caracteres.

Por que parece que os dois não combinam?

Porque eles respondem perguntas diferentes:

  • len() responde: quantos elementos existem?
  • índice responde: onde está cada elemento?

A relação entre os dois é simples: o último índice sempre vale len() - 1.

nome = "Ana Clara"
print(nome[len(nome) - 1])

Resultado:

a

E se você tentar acessar nome[len(nome)], ou seja, nome[9], o Python vai gerar um IndexError, porque não existe posição 9 em uma sequência de 9 elementos (as posições vão de 0 a 8).

Importante: o len() não funciona com qualquer coisa

A função len() só funciona com objetos que têm tamanho, como strings, listas, tuplas e dicionários. Um número inteiro, por exemplo, não tem tamanho:

print(len(10))

Isso gera um erro:

TypeError: object of type 'int' has no len()

Mas se o 10 for uma string, funciona normalmente:

print(len("10"))
2

O resultado é 2 porque a string "10" tem dois caracteres: o "1" e o "0".

Exemplo com lista

A mesma lógica vale para listas:

frutas = ["maçã", "banana", "uva"]

print(len(frutas))     # 3
print(frutas[0])       # maçã
print(frutas[2])       # uva
print(frutas[-1])      # uva (o último, usando índice negativo)

A lista tem 3 itens, mas os índices vão de 0 a 2. O índice negativo -1 é um atalho para o último elemento, sem precisar calcular len() - 1.

Por que isso importa?

Essa diferença é essencial para trabalhar com listas, strings, dicionários, loops e muito mais em Python. É comum usar os dois juntos, por exemplo para percorrer todas as posições de uma lista:

for i in range(len(frutas)):
    print(i, frutas[i])

Aqui, len(frutas) diz quantos itens existem (3) e range() gera os índices de 0 a 2.

Para lembrar

  • len() → quantos elementos existem (a contagem começa em 1).
  • índice → onde o elemento está (a contagem começa em 0).
  • O último índice é sempre len() - 1.
  • Acessar um índice igual ou maior que len() gera IndexError.
  • len() só funciona com objetos que têm tamanho: len("10") retorna 2, mas len(10) gera erro.

Entender o básico te dá mais confiança no código. Teste os exemplos no seu computador, troque os valores e confira se o resultado é o que você esperava. Bora praticar?

Teste seu conhecimento

Responda às perguntas abaixo para revisar os principais pontos deste artigo.

1. O que a função len() retorna?

2. Em Python, qual é o índice do primeiro elemento de uma string?

3. Qual é o resultado de len("Ana Clara")?

4. Qual é o último índice válido de uma lista com 5 elementos?

5. O que acontece ao executar len(10) e len("10")?

Livros recomendados