Como iterar sobre uma lista recebendo o índice e o valor ao mesmo tempo em Python
Como iterar sobre uma lista recebendo o índice e o valor ao mesmo tempo em Python
Muitas vezes precisamos percorrer uma coleção e acessar tanto a posição (índice) quanto o conteúdo de cada elemento. Em vez de usar a sintaxe legada
range(len(lista)), a função nativa enumerate() permite iterar de forma limpa e direta, retornando uma tupla contendo o índice e o valor a cada passo do loop.Python
# Lista de tarefas pendentes para o dia
tarefas = ["Revisar Pull Request", "Implantar em Staging", "Atualizar documentação"]
# 1. Uso básico do enumerate(): gera o índice (0-based) e o valor nativamente
for indice, tarefa in enumerate(tarefas):
print(f"Item {indice}: {tarefa}")
# 2. Alterando o índice inicial usando o parâmetro 'start' (ex: iniciar de 1)
print("\n--- Lista Numerada para o Usuário ---")
for posicao, tarefa in enumerate(tarefas, start=1):
print(f"{posicao}. {tarefa}")
Pontos-chave
- Substituição de
range(len()): Usarenumerate()é a abordagem recomendada (pythonica), pois evita a necessidade de consultar manualmente a lista usando colcheteslista[i]em cada iteração. - Desempacotamento de Tuplas (Tuple Unpacking): A função
enumerate()gera pares do tipo(índice, valor)a cada volta do loop, permitindo que você atribua ambos diretamente a duas variáveis distintas no cabeçalho dofor. - Parâmetro
start: Por padrão, a contagem dos índices começa em0(0-based). No entanto, definirstart=1(ou qualquer outro número inteiro) ajusta o valor inicial do contador sem alterar o deslocamento original dos elementos na memória. - Performance e Memória: O
enumerate()retorna um iterador gerador (lazy evaluation), o que significa que ele produz os pares sob demanda e não consome memória extra alocando uma nova estrutura no sistema.

Comentários
Postar um comentário