Como Acessar Índices em um Loop for em Python

Ana Maria Gomes
4 minutos de leitura

Conteúdos do tutorial

Ao trabalhar com Python, você pode se encontrar na necessidade de acessar o índice dos itens enquanto itera sobre uma sequência. Essa é uma tarefa comum, e o Python oferece uma maneira limpa e eficiente de lidar com isso usando a função enumerate(). Vamos ver como você pode usar essa função para acessar valores de índice em um loop for.

Use a Função Enumerate

A função enumerate() é uma função embutida que adiciona um contador a um iterável e o retorna na forma de um objeto enumerate. Esse objeto pode então ser usado diretamente em loops for para obter tanto o índice quanto o item.

Veja como você pode usar enumerate():

itens = ['maçã', 'banana', 'cereja']
for indice, item in enumerate(itens):
    print(indice, item)
Testar

Isso produzirá a saída:

0 maçã
1 banana
2 cereja

Note que o índice começa em 0 porque a indexação no Python começa do zero. No entanto, se você quiser começar o índice em 1 ou qualquer outro número, você pode fazer isso definindo o parâmetro start na função enumerate().

Iniciando o Índice em 1

Para começar o índice em 1, basta passar start=1 para a função enumerate():

itens = ['maçã', 'banana', 'cereja']
for indice, item in enumerate(itens, start=1):
    print(indice, item)
Testar

Isso produzirá a saída:

1 maçã
2 banana
3 cereja

Por Que Não Gerenciar Índices Manualmente

É importante notar que, embora você possa gerenciar índices manualmente usando uma variável ou usando range(len(itens)), isso é considerado não idiomático em Python. Tais abordagens não são apenas menos legíveis, mas também menos eficientes em comparação com o uso de enumerate().

Por exemplo, evite fazer isso:

itens = ['maçã', 'banana', 'cereja']
indice = 0
for item in itens:
    print(indice, item)
    indice += 1
Testar

Ou isso:

itens = ['maçã', 'banana', 'cereja']
for indice in range(len(itens)):
    print(indice, itens[indice])
Testar

Em vez disso, fique com o modo Pythonico usando enumerate().

Obtendo uma Contagem de Iterações

Às vezes, você pode não precisar do índice durante a iteração, mas precisa saber quantos itens você iterou. Nesse caso, você ainda pode usar enumerate() e começar a contagem em 1:

itens = ['maçã', 'banana', 'cereja']
contagem = 0
for contagem, item in enumerate(itens, start=1):
    print(item)

print('Foram impressos {0} itens'.format(contagem))
Testar

Isso lhe dará a contagem total de itens após o loop ter terminado.

Resumo

Em resumo, quando você precisa acessar o índice de itens em um loop ‘for’ no Python, a função enumerate() é sua aliada. É uma maneira limpa, legível e eficiente de iterar sobre sequências com acesso ao valor do índice. Lembre-se de que os índices no Python começam do zero, mas você pode facilmente ajustar o índice inicial com o parâmetro start em enumerate(). Ao usar enumerate(), você escreve código que está alinhado com a filosofia de design do Python, tornando-o mais fácil de manter e Pythonico.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial