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)
TestarIsso 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)
TestarIsso 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
TestarOu isso:
itens = ['maçã', 'banana', 'cereja']
for indice in range(len(itens)):
print(indice, itens[indice])
TestarEm 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))
TestarIsso 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.
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários